diff --git a/README.md b/README.md index 59bb768..703b1d2 100755 --- a/README.md +++ b/README.md @@ -1,10 +1,14 @@ -# Curated Resources on Orchestration +# ✨ Resources on Cloud and Orchestration -* [References for K8s](). -* [References for EKS](). -* [References for Docker](). -* [References for Golang](). -* [References for kubectl](). + +* [References for AWS and CDK](https://github.com/bt3gl/Curated_Cloud_and_Orchestration/blob/master/references_for_aws.md). +* [References for Lambda Functions](https://github.com/bt3gl/Curated_Cloud_and_Orchestration/blob/master/references_for_lambda.md). +* [References for EKS](https://github.com/bt3gl/Curated_Cloud_and_Orchestration/blob/master/references_for_eks.md). +* [References for Docker](https://github.com/bt3gl/Curated_Cloud_and_Orchestration/blob/master/references_for_docker.md). +* [References for K8s](https://github.com/bt3gl/Curated_Cloud_and_Orchestration/blob/master/references_for_k8s.md). +* [References for kubectl](https://github.com/bt3gl/Curated_Cloud_and_Orchestration/blob/master/references_for_kubectl.md). +* [References for Golang](https://github.com/bt3gl/Curated_Cloud_and_Orchestration/blob/master/references_for_go.md). +* [References for GCP](https://github.com/bt3gl/Curated_Cloud_and_Orchestration/blob/master/references_for_gcp.md). ---- diff --git a/cdk/.gitkeep b/cdk/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cdk/.gitkeep @@ -0,0 +1 @@ + diff --git a/cdk/admin_guide_cdk.md b/cdk/admin_guide_cdk.md new file mode 100644 index 0000000..afab8fc --- /dev/null +++ b/cdk/admin_guide_cdk.md @@ -0,0 +1,416 @@ +# GitOps, Flux, and Deploying services with CDK + +An introduction to some concepts and tools we will be using. + +## What's **GitOps** + +In general, there are two ways to deploy infrastructure changes: + +- **Procedural way**: telling some tools what to do, e.g.: Ansible. This is also known as a push model. +- **Declarative way**: telling some tool what you want to have done, also known as infrastructure as code, e.g.: Terraform, Pulumi, CDK. + +[GitOps](https://www.weave.works/technologies/gitops/) is a term created by WeWorks and works by using Git as a source of truth for declarative infrastructure and applications. Automated CI/CD pipelines roll out changes to your infrastructure after commits are pushed and approved in Git. + +The GitOps methodology consists in describing the desired state of the system using a **declarative** specification for each environment (e.g., our Kubernetes cluster for a specific environment): + +- A Git repo is the single source of truth for the desired state of the system +- All changes to the desired state are Git commits +- All specified properties of the cluster are also observable in the cluster so that we can detect if the desired and observed states are the same (converged) or different (diverged) + +In GitOps you only push code. The developer interacts with the source control, which triggers the CI/CD tool (CicleCI), and this pushes the docker image to the container register (e.g. docker hub). You see the Docker image as an artifact. + +To deploy that Docker image, you have a different config repository which contains the Kubernetes manifests. CircleCI sends a pull request, and when it is merged, a pod in the Kubernetes cluster pulls the image to the cluster (similar to `kubectl apply`, or even `helm update`). Everything is controlled through pull requests. You push code, not containers. + +The refereed pod runs a tool called [Flux](https://github.com/fluxcd/flux), which automatically ensures that the state of a cluster matches the config in Git. It uses an operator in the cluster to trigger deployments inside Kubernetes, which means you don't need a separated CircleCI. It monitors all relevant image repositories, detects new images, triggers deployments, and updates the desired running configuration based on that. + +## Kubernetes + +A Kubernetes cluster consists of a series of objects: + +- **Nodes**, which can be equated to servers, be they bare-metal or virtual machines running in a cloud. +- Nodes run **Pods**, which are collections of Docker containers. A Pod is the unit of deployment in Kubernetes. All containers in a Pod share the same network and can refer to each other as if they were running on the same host. The Kubernetes object responsible for launching and maintaining the desired number of pods is called a **Deployment.** +- For Pods to communicate with other Pods, Kubernetes provides another kind of object called a **Service.** +- Services are tied to Deployments through **Selectors** and **Labels,** and are also exposed to external clients either by exposing a **NodePort** as a static port on each Kubernetes node or by creating a **LoadBalancer** object. + +## Kustomize + +Kustomize provides a **purely declarative approach** to configuration customization that adheres to and leverages the familiar and carefully designed Kubernetes API. + +Kustomize lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is. Kustomize targets Kubernetes; it understands and can patch. + +### How Kustomize works + +For each service, there is two directories, where a `kustomization.yaml` file list all the `yaml` files inside them: + +- `base/` - usually immutable. +- `overlay/`- where you add customizations and new code. + +--- + +# **Bootstrapping Services in an AWS EKS cluster** + +## **Pre-requisites** + +### **Install CLI tools** + +- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). +- [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/). +- [sops](https://github.com/mozilla/sops). +- [Kustomize](https://github.com/kubernetes-sigs/kustomize/blob/master/docs/INSTALL.md). +- [fluxctl](https://www.weave.works/blog/install-fluxctl-and-manage-your-deployments-easily). + +### **Get access to our AWS Cluster** + +We spin up clusters' resources using AWS CDK. This provisions a **developer EKS cluster** and **MSK cluster**, together with the following resources: a dedicated **VPC**, a **VPN**, **Elasticsearch cluster**, **Cloudwatch dashboards**, and an **RDS Postgres instance configured for Hydra.** + +This staging and dev clusters are already available for you in our AWS staging account. For full access you need: + +- AWS credentials (`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`) +- The VPN `.ovpn` file (can be downloaded from the dashboard) and VPN client private key. +- Kubeconfig file. + +However, if you would like to bootstrap an entirely new cluster, follow the instructions below. + + +## **Bootstrapping Step-by-step** + +### **Update Kubeconfig** + +Edit `./bootstrap/kubeconfig/aws-auth-configmap.yaml` with your account's `rolearn`. + +Set env variables: + + export REGION= + +Get kubectl config: + + ./get_kubeconfig.sh + +Remember, you can always change your kubeconfig context with: + + kubectl config use-context + +You can also use [kubectx](https://github.com/ahmetb/kubectx) for this. + +### **Create Nginx ingress controller in the EKS cluster** + +Create Nginx ingress controller's namespaces, services, roless, deployments, etc. by running: + + kubectl apply -f ./bootstrap/nginx-ingress-alb/all-in-one.yaml + +This is the output: + + namespace/kube-ingress created + serviceaccount/nginx-ingress-controller created + clusterrole.rbac.authorization.k8s.io/nginx-ingress-controller created + role.rbac.authorization.k8s.io/nginx-ingress-controller created + clusterrolebinding.rbac.authorization.k8s.io/nginx-ingress-controller created + rolebinding.rbac.authorization.k8s.io/nginx-ingress-controller created + service/nginx-default-backend created + deployment.extensions/nginx-default-backend created + configmap/ingress-nginx created + service/ingress-nginx created + deployment.extensions/ingress-nginx created + priorityclass.scheduling.k8s.io/high-priority created + +Check whether all the pods created: + + kubectl get pods --namespace kube-ingress + +Should result: + + NAMESPACE NAME READY STATUS RESTARTS AGE + kube-ingress ingress-nginx-55966f5cf8-bpvwj 1/1 Running 0 7m53s + kube-ingress ingress-nginx-55966f5cf8-vssfl 1/1 Running 0 7m53s + kube-ingress ingress-nginx-55966f5cf8-xtkv9 1/1 Running 0 7m53s + kube-ingress nginx-default-backend-c4bbbc8b7-j5cnh 1/1 Running 0 7m57s + +Check all the services created: + + kubectl get services --namespace kube-ingress + +Should result: + + NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + kube-ingress ingress-nginx NodePort 172.20.203.36 80:30080/TCP,443:30443/TCP 6m32s + kube-ingress nginx-default-backend ClusterIP 172.20.128.3 80/TCP 6m35s + +Note that the `Service` type for the `ingress-nginx` service is `NodePort` and not `LoadBalancer`. We don't want AWS to create a new Load Balancer every time we recreate the ingress. Instead, we provision an ALB and send both HTTP and HTTPS traffic to a `Target Group` that targets port `30080` on the EKS worker nodes (which is the `nodePort` in the manifest above for HTTP traffic). + +### **Create a namespace in the EKS cluster** + +This step is necessary in case you are creating an entirely new cluster namespace (i.e., if it's not `dev` nor `staging`). + +To add a new namespace, just follow the current examples in `/bootstrap/namespaces/overlays/` and then apply the changes in the overlay: + + cd ./bootstrap/namespaces/overlays/ + kustomize build . | kubectl apply -k + +You should see something like: + + namespace/ created + namespace/logging created + namespace/monitoring created + namespace/observability created + +Check whether it worked: + + kubectl get ns + +### **Create secret for DockerHub credentials in EKS cluster** + +All right, if you are working on an AWS account that is not staging, hold tight, because this step is a trip. + +Currently, we use [sops](https://github.com/mozilla/sops) to manage secrets in Kubernetes. + +You have a file named `./bootstrap/dockerhub-creds-secret/docker-hub.yaml` that possess the secret for DockerHub credentials and it's encrypted. So the first thing we need to do is decrypt it so we can use the secret for our cluster. The caveat is that you need to set your AWS creds to the account `773713188930` (staging) account (or it won't be able to grab the key to decrypt): + + sops -d docker-hub.yaml > dec.yaml + +Take a look at `dec.yaml`, you will see something like this: + + apiVersion: v1 + type: kubernetes.io/dockerconfigjson + kind: Secret + metadata: + name: docker-hub + data: + .dockerconfigjson: + +Now, the next step is either to go to the [AWS KMS dashboard](https://us-east-2.console.aws.amazon.com/kms/home?region=us-east-2#/kms/keys) or run `aws kms create-custom-key-store` to create a `Customer managed keys`. + +KMS is a service that encrypts and decrypts data with AES_GCM, using keys that are never visible to users of the service. Each KMS master key has a set of role-based access controls, and individual roles are permitted to encrypt or decrypt using the master key. KMS helps solve the problem of distributing keys, by shifting it into an access control problem that can be solved using AWS's trust model. + +Once you have this ready, grab its ARN. + +Create a new encrypted file with your new KMS key: + + sops --kms="ARN" --encrypt dec.yaml > docker-hub-.yaml + + +This Secret is created in several namespaces (default, monitoring, logging, flux-system). + +### **Apply overlay config for fluentd, jaeger-operator and prometheus-operator** + +Follow the same procedure for each of these services: `./bootstrap/fluentd`, `./bootstrap/jaeger-operator` and `./bootstrap/prometheus-operator`, copying an overlay subdirectory for your namespace, replacing your namespace string to anywhere where `staging` is, and running: + + cd ./bootstrap//overlays/ + kustomize build . | kubectl apply -f - + +### **Install and configure Flux in EKS cluster** + +This part is a little longer. [Here](https://docs.fluxcd.io/en/latest/tutorials/get-started-kustomize.html) is the official Flux documentation with Kustomize. + +Flux (and memcached) is bootstrapped by following the instructions inside `bootstrap/flux/`. That directory should have the following structure: + + ├── base + │ ├── flux + │ └── memcached + ├── overlays + +The first step is creating an `overlay/` directory for your deployment, similar to `overlay/staging`. + +### **How Flux works** + +Flux runs by looking at `./.flux.yaml`. This calls `./generate_kustomize_output.sh` in a docker container and runs the following: + +1. Set the environment (e.g. `staging`). +2. For each sub-directory in `kustomize/`, `cd` inside each `overlays/` for the environment and runs `kustomize build`. +3. If there are `sops` secrets inside these directories, decrypts the secret as well. + +### **Setting up Flux Docker image** + +The default `Deployment` for Flux is using `weaveworks/flux` Docker image. + +You will need to push a docker image to DockerHub for your namespace. + +Once you have a [docker image in Docker Hub] grab its tag (e.g. `staging-af87bcc`). + + +### **Building and deploying** + +Inside your overlay directory, run: + + cd bootstrap/flux/overlays/ + kustomize build . | kubectl apply -f - + +You should see the following: + + namespace/flux-system created + serviceaccount/flux created + podsecuritypolicy.policy/flux created + role.rbac.authorization.k8s.io/flux created + clusterrole.rbac.authorization.k8s.io/flux-psp created + clusterrole.rbac.authorization.k8s.io/flux created + clusterrole.rbac.authorization.k8s.io/flux-readonly created + rolebinding.rbac.authorization.k8s.io/flux created + clusterrolebinding.rbac.authorization.k8s.io/flux-psp created + clusterrolebinding.rbac.authorization.k8s.io/flux created + configmap/flux-kube-config-hmbbmcb469 created + secret/flux-git-deploy created + service/flux-memcached created + deployment.apps/flux created + deployment.apps/flux-memcached created + +Wait for Flux and memcached to start: + + kubectl -n flux-system rollout status deployment.apps/flux + +Check that the pods are up: + + kubectl get pods --namespace flux-system + +You should see two pods, something like this: + + NAME READY STATUS RESTARTS AGE + flux- 1/1 Running 0 21m + flux-memcached- 1/1 Running 0 60m + +At any point you can debug your pod by running: + + kubectl describe pod flux- -n flux-system + +### **Adding key to Github** + +Generate a deployment key: + + fluxctl --k8s-fwd-ns=flux-system identity + + +Later on, when you have everything set, you can force Flux `git pull` with + + fluxctl sync --k8s-fwd-ns flux-system + + +### **Create k8s-developer-role in multiple namespaces in EKS cluster** + +Similarly to the previous step, create an overlay to your namespace (e.g. dev) in the [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) kustomize resources. You can do this by copying the files from `./bootstrap/rbac/overlays/staging`, and changing the namespace string from `staging` inside `k8s-developer-user.yaml`: + + ... + metadata: + name: k8s-developer-role + namespace: + ... + metadata: + name: k8s-developer-rolebinding + namespace: + +Apply the changes with: + + cd bootstrap/rbac/overlays/ + kustomize build . | kubectl apply -f - + +You should see the following: + + role.rbac.authorization.k8s.io/k8s-developer-role-default created + role.rbac.authorization.k8s.io/k8s-developer-role created + role.rbac.authorization.k8s.io/k8s-developer-role-monitoring created + rolebinding.rbac.authorization.k8s.io/k8s-developer-rolebinding-default created + rolebinding.rbac.authorization.k8s.io/k8s-developer-rolebinding created + rolebinding.rbac.authorization.k8s.io/k8s-developer-rolebinding-monitoring created + + + +--- + +# **Deploying Advanced services in an AWS EKS cluster** + + +## **Porting Hydra** + +### **Customizing the overlay directory** + +Inside `./kustomize/hydra`, create `overlay/` subdirectory for your environment. + +Create a KMS key (the same way as in step *Create secret for DockerHub credentials in EKS cluster* in `./boostrap`). Grab its ARN and add it too `./kustomize/hydra/overlays/.sops.yaml`. + +Replace the `staging` string (and the correct host URLS) for your namespace, inside `kustomization.yaml`, `configmap.yaml`. + +### **Creating sops secrets for Hydra** + +We use sops to encrypt secret values for environment variables representing credentials, database connections, etc. so that Flux can pick these secrets when it needs. + +We place these files inside a `.sops/` directory inside the overlay environment directory. + +Grab the RDS Postgres data and create secret string: + + echo -n "postgres://hydradbadmin:< hydra_passport>@ .sops/DATABASE_URL.enc + sops -e -i .sops/DATABASE_URL.enc + +Create password salt: + + echo -n " .sops/OIDC_SUBJECT_TYPE_PAIRWISE_SALT.enc + sops -e -i .sops/OIDC_SUBJECT_TYPE_PAIRWISE_SALT.enc + +Create system secret: + + echo -n " .sops/SYSTEM_SECRET.enc + sops -e -i .sops/SYSTEM_SECRET.enc + +Generate `secrets.yaml': + + npx --quiet --package @reactioncommerce/merge-sops-secrets@1.2.1 sops-to-secret secret-stub.yaml > secret.yaml + +### **Building and applying** + +Now, just run: + + cd ./kustomize/hydra/overlays/ + kustomize build . | kubectl apply -f - + + +### **Create MongoDB database and user in Atlas** + +So that you can have MongDB URL and MongDB OPLOG URL for the next step. + +### **Creating sops secrets** + +Create MongDB URL secret: + + echo -n "" .sops/MONGO_URL.enc + sops -e -i .sops/MONGO_URL.enc + +Create MongDB OPLOG URL secret: + + echo -n "" .sops/MONGO_OPLOG_URL.enc + sops -e -i .sops/MONGO_OPLOG_URL.enc + + +Generate `secrets.yaml': + + npx --quiet --package @reactioncommerce/merge-sops-secrets@1.2.1 sops-to-secret secret-stub.yaml > secret.yaml + +### **Building and applying** + +Now, just run: + + cd ./kustomize/hydra/overlays/ + kustomize build . | kubectl apply -f - + + +### **Testing pod** + + kubectl get pods -ntest + +Exec to the pod: + + kubectl exec -it -ntest -- bash + +## **Setting DNS Records** + + +### **Adding NS recorders** + +First, add the nameserver records for `ENV.doman.io` in [Route53](https://console.aws.amazon.com/route53/home?region=us-east-2#hosted-zones:). + +### **Adding Certificate** + +You might have to add a net certificate `*.ENV.domain.io/` to [ACM](https://us-east-2.console.aws.amazon.com/acm/home?region=us-east-2#/), then add its record in Route53 (as CNAME), and associate it to the load balancer. + +In the [load balancer dashboard](https://us-east-2.console.aws.amazon.com/ec2/v2/home?region=us-east-2#LoadBalancers:sort=loadBalancerName), go to listeners and make sure `HTTPS : 443` uses that certificate. Make sure the load balancer has the correct security groups. + +### **Add All aliases** + +Then add all the URL aboves as IPv4 aliases pointing them to the load balancer. + + diff --git a/cdk/python/PostgreSQL_example/README.md b/cdk/python/PostgreSQL_example/README.md new file mode 100644 index 0000000..65e08fe --- /dev/null +++ b/cdk/python/PostgreSQL_example/README.md @@ -0,0 +1,70 @@ +# Setting up a PostgreSQL RDS with CDK in Python + +### Create a virtual environment and install dependencies: + +``` +virtualenv .env +source .env/bin/activate +pip3 install -r requirements.txt +``` + +### Define You RDS DB + +Add any constant variable in `cdk.json` and then define how you want your RDS instance in `postgre_sql_example/postgre_sql_example_stack.py`: + +``` +class PostgreSqlExampleStack(core.Stack): + + def __init__(self, scope: core.Construct, id: str, **kwargs) -> None: + super().__init__(scope, id, **kwargs) + + # Database Instance + instance = rds.DatabaseInstance(self, + 'examplepostgresdbinstance', + master_username=master_username, + engine=rds.DatabaseInstanceEngine.POSTGRES, instance_class=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO), + vpc=self.vpc, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + database_name=database_name, + enable_performance_insights=enable_performance_insights, + storage_encrypted=storage_encrypted, + multi_az=multi_az, + backup_retention=backup_retention, + monitoring_interval=monitoring_interval, + ) +``` + +### Create synthesized CloudFormation templates + +``` +cdk synth +``` + +You can check what changes are introduced into your current AWS resources with: +``` +cdk diff --profile +``` + + +### Deploy to AWS + +If everything looks OK, deploy with: + +``` +cdk deploy --profile +``` + +To check all the stacks in the app: + +``` +cdk ls +``` + +### Clean up + +To destroy/remove all the newly created resources, run: + +``` +cdk destroy --profile +``` diff --git a/cdk/python/PostgreSQL_example/app.py b/cdk/python/PostgreSQL_example/app.py new file mode 100644 index 0000000..9f53e87 --- /dev/null +++ b/cdk/python/PostgreSQL_example/app.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 + +from aws_cdk import core + +from postgre_sql_example.postgre_sql_example_stack import PostgreSqlExampleStack + + +app = core.App() +PostgreSqlExampleStack(app, "postgre-sql-example") + +app.synth() diff --git a/cdk/python/PostgreSQL_example/cdk.json b/cdk/python/PostgreSQL_example/cdk.json new file mode 100644 index 0000000..6ea5f9c --- /dev/null +++ b/cdk/python/PostgreSQL_example/cdk.json @@ -0,0 +1,16 @@ +{ + "app": "python3 app.py", + "context": { + "rds.auto_minor_version_upgrade": false, + "rds.availability_zone": + "rds.backup_retention": + "rds.database_name": "postgres_db", + "rds.enable_performance_insights": true, + "rds.master_username": "postgres", + "rds.monitoring_interval": 60, + "rds.multi_az": false, + "rds.storage_encrypted": false, + "vpc.cidr": "10.0.0.0/16", + "vpc.max_azs": + } +} diff --git a/cdk/python/PostgreSQL_example/postgre_sql_example/__init__.py b/cdk/python/PostgreSQL_example/postgre_sql_example/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/cdk/python/PostgreSQL_example/postgre_sql_example/postgre_sql_example_stack.py b/cdk/python/PostgreSQL_example/postgre_sql_example/postgre_sql_example_stack.py new file mode 100644 index 0000000..f158702 --- /dev/null +++ b/cdk/python/PostgreSQL_example/postgre_sql_example/postgre_sql_example_stack.py @@ -0,0 +1,59 @@ +import json +import sys +from aws_cdk import ( + aws_ec2 as ec2, + aws_rds as rds, + core as core, +) + +# Python CDK does not have get_context yet. +def _get_context(): + CONTEXT_FILE = 'cdk.json' + try: + with open(CONTEXT_FILE, 'r') as f: + return json.load(f)['context'] + except IOError: + print('Could not open context file {}. Exiting...'.format(CONTEXT_FILE)) + sys.exit(1) + except KeyError as e: + print('Context file {0} is misconfigured {1}. Exiting...'.format(CONTEXT_FILE, e)) + sys.exit(1) + +class PostgreSqlExampleStack(core.Stack): + + def __init__(self, scope: core.Construct, id: str, **kwargs) -> None: + super().__init__(scope, id, **kwargs) + + # Grab variables from cdk.json + context = _get_context() + auto_minor_version_upgrade = context["rds.auto_minor_version_upgrade"] + availability_zone = context["rds.availability_zone"] + backup_retention = core.Duration.days(context["rds.backup_retention"]) + database_name = context["rds.database_name"] + enable_performance_insights = context["rds.enable_performance_insights"] + master_username = context["rds.master_username"] + monitoring_interval = core.Duration.seconds(context["rds.monitoring_interval"]) + multi_az = context["rds.multi_az"] + storage_encrypted = context["rds.storage_encrypted"] + cidr = context["vpc.cidr"] + max_azs = context["vpc.max_azs"] + + # Set VPC + self.vpc = ec2.Vpc(self, "VPCTest", cidr=cidr, max_azs=max_azs) + + # Database Instance + instance = rds.DatabaseInstance(self, + 'storefrontrdspostgresdbinstance', + master_username=master_username, + engine=rds.DatabaseInstanceEngine.POSTGRES, instance_class=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO), + vpc=self.vpc, + auto_minor_version_upgrade=auto_minor_version_upgrade, + availability_zone=availability_zone, + database_name=database_name, + enable_performance_insights=enable_performance_insights, + storage_encrypted=storage_encrypted, + multi_az=multi_az, + backup_retention=backup_retention, + monitoring_interval=monitoring_interval, + ) + diff --git a/cdk/python/PostgreSQL_example/requirements.txt b/cdk/python/PostgreSQL_example/requirements.txt new file mode 100644 index 0000000..74aaf6d --- /dev/null +++ b/cdk/python/PostgreSQL_example/requirements.txt @@ -0,0 +1,34 @@ +astroid==2.2.5 +attrs==19.1.0 +aws-cdk.assets==1.10.0 +aws-cdk.aws-cloudwatch==1.10.0 +aws-cdk.aws-ec2==1.10.0 +aws-cdk.aws-events==1.10.0 +aws-cdk.aws-iam==1.10.0 +aws-cdk.aws-kms==1.10.0 +aws-cdk.aws-lambda==1.10.0 +aws-cdk.aws-logs==1.10.0 +aws-cdk.aws-rds==1.10.0 +aws-cdk.aws-s3==1.10.0 +aws-cdk.aws-s3-assets==1.10.0 +aws-cdk.aws-sam==1.10.0 +aws-cdk.aws-secretsmanager==1.10.0 +aws-cdk.aws-sqs==1.10.0 +aws-cdk.aws-ssm==1.10.0 +aws-cdk.core==1.10.0 +aws-cdk.cx-api==1.10.0 +aws-cdk.region-info==1.10.0 +cattrs==0.9.0 +isort==4.3.21 +jsii==0.17.1 +lazy-object-proxy==1.4.2 +mccabe==0.6.1 +pep8==1.7.1 +publication==0.0.3 +pylint==2.3.1 +python-dateutil==2.8.0 +six==1.12.0 +typed-ast==1.4.0 +typing-extensions==3.7.4 +virtualenv==16.7.4 +wrapt==1.11.2 diff --git a/cdk/python/PostgreSQL_example/setup.py b/cdk/python/PostgreSQL_example/setup.py new file mode 100644 index 0000000..a3cabad --- /dev/null +++ b/cdk/python/PostgreSQL_example/setup.py @@ -0,0 +1,45 @@ +import setuptools + + +with open("README.md") as fp: + long_description = fp.read() + + +setuptools.setup( + name="postgre_sql_example", + version="0.0.1", + + description="A postgres CDK Python example", + long_description=long_description, + long_description_content_type="text/markdown", + + author="author", + + package_dir={"": "postgre_sql_example"}, + packages=setuptools.find_packages(where="postgre_sql_example"), + + install_requires=[ + "aws-cdk.core", + ], + + python_requires=">=3.6", + + classifiers=[ + "Development Status :: 4 - Beta", + + "Intended Audience :: Developers", + + "License :: OSI Approved :: Apache Software License", + + "Programming Language :: JavaScript", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + + "Topic :: Software Development :: Code Generators", + "Topic :: Utilities", + + "Typing :: Typed", + ], +) diff --git a/cdk/python/VPC_example/README.md b/cdk/python/VPC_example/README.md new file mode 100644 index 0000000..e211eda --- /dev/null +++ b/cdk/python/VPC_example/README.md @@ -0,0 +1,75 @@ +# Setting up a VPC with CDK in Python + +[AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/home.html) is a very neat way to write infrastructure as code, enabling you to create and provision AWS infrastructure deployments predictably and repeatedly. + +You choose your favorite language to code what resources (stacks) you want, and CDK synthetizes them to CloudFormation and helps you to deploy them to AWS. + +In this example we see how to setup a VPC using CDK in Python. + +### Install AWS CDK + +Follow [this instructions](https://github.com/aws/aws-cdk#at-a-glance). + +### Create a virtual environment and install dependencies: + +``` +virtualenv venv +source venv/bin/activate +pip install -r requirements.txt +``` + +Note: If you are starting from a blank project with `cdk init app --language=python` instead, you will we need to manually install resources, such as `pip install aws_cdk.aws_ec2`. + +### Define You VPC + +Define how you want your VPC in the file `vpc_example/vpc_example_stack.py`: + +``` +class VpcExampleStack(core.Stack): + + def __init__(self, scope: core.Construct, id: str, **kwargs) -> None: + super().__init__(scope, id, **kwargs) + + vpc = aws_ec2.Vpc(self, "MiaVPCTest", cidr="10.0.0.0/16", max_azs=3) +``` + + +### Create synthesized CloudFormation template + +``` +cdk synth +``` + +You can check what changes this introduces into your AWS account: +``` +cdk diff --profile +``` + +### Deploy to AWS + +If everything looks right, deploy: + +``` +cdk deploy --profile +``` + +These are the resources that will be created with this command: + +![vpc](https://github.com/bt3gl/AWS_Resources/blob/master/CDK_examples/VPC_example/imgs/vpc.png) + + + +To check all the stacks in the app: + +``` +cdk ls +``` + +### Clean up + +To destroy/remove all the newly created resources, run: + +``` +cdk destroy --profile +``` + diff --git a/cdk/python/VPC_example/app.py b/cdk/python/VPC_example/app.py new file mode 100644 index 0000000..1a926a6 --- /dev/null +++ b/cdk/python/VPC_example/app.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 + +from aws_cdk import core + +from vpc_example.vpc_example_stack import VpcExampleStack + + +app = core.App() +VpcExampleStack(app, "vpc-example") + +app.synth() diff --git a/cdk/python/VPC_example/cdk.json b/cdk/python/VPC_example/cdk.json new file mode 100644 index 0000000..787a71d --- /dev/null +++ b/cdk/python/VPC_example/cdk.json @@ -0,0 +1,3 @@ +{ + "app": "python3 app.py" +} diff --git a/cdk/python/VPC_example/imgs/vpc.png b/cdk/python/VPC_example/imgs/vpc.png new file mode 100644 index 0000000..c3e50e6 Binary files /dev/null and b/cdk/python/VPC_example/imgs/vpc.png differ diff --git a/cdk/python/VPC_example/requirements.txt b/cdk/python/VPC_example/requirements.txt new file mode 100644 index 0000000..385c3d0 --- /dev/null +++ b/cdk/python/VPC_example/requirements.txt @@ -0,0 +1,14 @@ +attrs==19.1.0 +aws-cdk.aws-cloudwatch==1.10.0 +aws-cdk.aws-ec2==1.10.0 +aws-cdk.aws-iam==1.10.0 +aws-cdk.aws-ssm==1.10.0 +aws-cdk.core==1.10.0 +aws-cdk.cx-api==1.10.0 +aws-cdk.region-info==1.10.0 +cattrs==0.9.0 +jsii==0.17.1 +publication==0.0.3 +python-dateutil==2.8.0 +six==1.12.0 +typing-extensions==3.7.4 diff --git a/cdk/python/VPC_example/setup.py b/cdk/python/VPC_example/setup.py new file mode 100644 index 0000000..7319fcb --- /dev/null +++ b/cdk/python/VPC_example/setup.py @@ -0,0 +1,45 @@ +import setuptools + + +with open("README.md") as fp: + long_description = fp.read() + + +setuptools.setup( + name="vpc_example", + version="0.0.1", + + description="A VPC CDK Python example", + long_description=long_description, + long_description_content_type="text/markdown", + + author="author", + + package_dir={"": "vpc_example"}, + packages=setuptools.find_packages(where="vpc_example"), + + install_requires=[ + "aws-cdk.core", + ], + + python_requires=">=3.6", + + classifiers=[ + "Development Status :: 4 - Beta", + + "Intended Audience :: Developers", + + "License :: OSI Approved :: Apache Software License", + + "Programming Language :: JavaScript", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + + "Topic :: Software Development :: Code Generators", + "Topic :: Utilities", + + "Typing :: Typed", + ], +) diff --git a/cdk/python/VPC_example/vpc_example/__init__.py b/cdk/python/VPC_example/vpc_example/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/cdk/python/VPC_example/vpc_example/vpc_example_stack.py b/cdk/python/VPC_example/vpc_example/vpc_example_stack.py new file mode 100644 index 0000000..688cf43 --- /dev/null +++ b/cdk/python/VPC_example/vpc_example/vpc_example_stack.py @@ -0,0 +1,8 @@ +from aws_cdk import core, aws_ec2 + +class VpcExampleStack(core.Stack): + + def __init__(self, scope: core.Construct, id: str, **kwargs) -> None: + super().__init__(scope, id, **kwargs) + + vpc = aws_ec2.Vpc(self, "MiaVPCTest", cidr="10.0.0.0/16", max_azs=3) diff --git a/cdk/ts/.gitignore b/cdk/ts/.gitignore new file mode 100644 index 0000000..4b8f5bb --- /dev/null +++ b/cdk/ts/.gitignore @@ -0,0 +1,136 @@ +# CDK +*.js +!jest.config.js +*.d.ts +node_modules +.cdk.staging +cdk.out + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.idea +.DS_Store +# 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 +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# Kubernetes kubectl configuration +kubeconfig + +# CDK +cdk.out/ + +# Python +__pycache__/ +*.py[cod] +*$py.class +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Certs +*.key +*.crt +easy-rsa/ diff --git a/cdk/ts/MSK_example/README.md b/cdk/ts/MSK_example/README.md new file mode 100644 index 0000000..e860d08 --- /dev/null +++ b/cdk/ts/MSK_example/README.md @@ -0,0 +1,61 @@ +# CDK MSK Example + + + +### Deploy VPC + +[Amazon VPC](https://aws.amazon.com/vpc/) lets you provision a logically isolated section of the AWS Cloud where you can all the resources as in a virtual network. + +These are the default values in `cdk.json`: + +``` +"vpc.cidr": "10.0.0.0/16", +"vpc.maxAzs": 3, +``` + +Deploy with: + +``` +cdk deploy VPCStack +``` + +### Deploy MSK + +[Amazon MSK](https://aws.amazon.com/msk/) is a managed service that makes it easy for you to build and run applications that use Apache Kafka to process streaming data. + +These are the default values in `cdk.json`: + +``` +"msk.DevMskCluster": "MskCluster", +"msk.ClusterTag": "MSK cluster", +"msk.brokerNodeGroupBrokerAzDistribution": "DEFAULT", +"msk.enhancedMonitoring": "PER_BROKER", +"msk.brokerNodeGroupEBSVolumeSize": 100, +"msk.brokerNodeGroupInstanceType": "kafka.m5.large", +"msk.brokerPort": 9092, +"msk.kafkaVersion": "2.2.1", +"msk.numberOfBrokerNodes": 3 +``` + +Deploy with: + +``` +cdk deploy MskClusterStack +``` + +#### Kafka CLI + +Note that the CLI commands for MKS are given by the keyword `kafka`, for example: + +``` +aws kafka list-clusters +``` + +To retrieve `BootstrapBrokerStringTls`, run: + +``` + aws kafka get-bootstrap-brokers --cluster-arn + ``` + +However, access and development within the cluster (e.g. creating topics, accessing brokers) need to be done while connected to the VPN. + diff --git a/cdk/ts/MSK_example/bin/example.ts b/cdk/ts/MSK_example/bin/example.ts new file mode 100644 index 0000000..bf1b4c8 --- /dev/null +++ b/cdk/ts/MSK_example/bin/example.ts @@ -0,0 +1,15 @@ +#!/usr/bin/env node +import 'source-map-support/register'; +import cdk = require('@aws-cdk/core'); + +import { VPCStack } from "../lib/Vpc"; +import { MskClusterStack } from "../lib/MskCluster"; + +const app = new cdk.App(); +const app_env = { + region: , + account: +}; + +const vpcStack = new VPCStack(app, 'VPCStack', {env: app_env}); +new MskClusterStack(app, 'MskClusterStack',{env: app_env, vpc: vpcStack.Vpc}); diff --git a/cdk/ts/MSK_example/cdk.context.json b/cdk/ts/MSK_example/cdk.context.json new file mode 100644 index 0000000..414ef3b --- /dev/null +++ b/cdk/ts/MSK_example/cdk.context.json @@ -0,0 +1,7 @@ +{ + "availability-zones:account=:region=us-west-1": [ + "us-west-1a", + "us-west-1b", + "us-west-1c" + ] +} diff --git a/cdk/ts/MSK_example/cdk.json b/cdk/ts/MSK_example/cdk.json new file mode 100644 index 0000000..98e9e8f --- /dev/null +++ b/cdk/ts/MSK_example/cdk.json @@ -0,0 +1,17 @@ +{ + "app": "npx ts-node bin/example.ts", + "context": { + "env.type": "dev", + "vpc.cidr": "10.0.0.0/16", + "vpc.maxAzs": 3, + "msk.DevMskCluster": "MskCluster", + "msk.ClusterTag": "MSK cluster", + "msk.brokerNodeGroupBrokerAzDistribution": "DEFAULT", + "msk.enhancedMonitoring": "PER_BROKER", + "msk.brokerNodeGroupEBSVolumeSize": 100, + "msk.brokerNodeGroupInstanceType": "kafka.m5.large", + "msk.brokerPort": 9092, + "msk.kafkaVersion": "2.2.1", + "msk.numberOfBrokerNodes": 3 + } +} diff --git a/cdk/ts/MSK_example/lib/MskCluster.ts b/cdk/ts/MSK_example/lib/MskCluster.ts new file mode 100644 index 0000000..def9d39 --- /dev/null +++ b/cdk/ts/MSK_example/lib/MskCluster.ts @@ -0,0 +1,75 @@ +import cdk = require("@aws-cdk/core"); +import ec2 = require("@aws-cdk/aws-ec2"); +import msk = require("@aws-cdk/aws-msk"); + + +interface MSKStackProps extends cdk.StackProps { + vpc: ec2.IVpc; +} +export class MskClusterStack extends cdk.Stack { + private vpc: ec2.IVpc; + + constructor(scope: cdk.Construct, id: string, props?: MSKStackProps) { + super(scope, id, props); + const current_env = this.node.tryGetContext("env.type"); + + //****************************** Context variables **************************************// + const clusterName = this.node.tryGetContext("msk.DevMskCluster"); + const clusterTag = this.node.tryGetContext("msk.mskClusterTag"); + const brokerNodeGroupBrokerAzDistribution = this.node.tryGetContext("msk.brokerNodeGroupBrokerAzDistribution"); + const brokerNodeGroupEBSVolumeSize = this.node.tryGetContext("msk.brokerNodeGroupEBSVolumeSize"); + const brokerNodeGroupInstanceType = this.node.tryGetContext("msk.brokerNodeGroupInstanceType"); + const brokerPort = this.node.tryGetContext("msk.brokerPort"); + const kafkaVersion = this.node.tryGetContext("msk.kafkaVersion"); + const numberOfBrokerNodes = this.node.tryGetContext("msk.numberOfBrokerNodes"); + const enhancedMonitoring = this.node.tryGetContext("msk.enhancedMonitoring"); + + //**************************************** VPC + if (props) + this.vpc = props.vpc; + else + this.vpc = ec2.Vpc.fromLookup(this, current_env+"Vpc", { + vpcName: "VPCStack/"+current_env+"Vpc" + }); + + //**************************************** SG + const description = "Allow access to "+current_env+" MSK Cluster"; + const SecurityGroup = new ec2.SecurityGroup( + this, + current_env+"MskClusterSG", + { + vpc: this.vpc, + securityGroupName: current_env+"MskClusterSG", + description: description, + allowAllOutbound: true + } + ); + SecurityGroup.addIngressRule( + ec2.Peer.anyIpv4(), + ec2.Port.tcp(brokerPort), + description + ); + + //******************************* MSK Cluster **************************// + const cluster = new msk.CfnCluster(this, "MskCluster", { + brokerNodeGroupInfo: { + clientSubnets: this.vpc.privateSubnets.map(x => x.subnetId), + instanceType: brokerNodeGroupInstanceType, + brokerAzDistribution: brokerNodeGroupBrokerAzDistribution, + storageInfo: { + ebsStorageInfo: { + volumeSize: brokerNodeGroupEBSVolumeSize + } + } + }, + clusterName: clusterName, + kafkaVersion: kafkaVersion, + numberOfBrokerNodes: numberOfBrokerNodes, + enhancedMonitoring: enhancedMonitoring, + tags: { + name: current_env+clusterTag, + } + }); + } + } + diff --git a/cdk/ts/MSK_example/lib/Vpc.ts b/cdk/ts/MSK_example/lib/Vpc.ts new file mode 100644 index 0000000..ec7ad66 --- /dev/null +++ b/cdk/ts/MSK_example/lib/Vpc.ts @@ -0,0 +1,19 @@ +import cdk = require('@aws-cdk/core'); +import ec2 = require("@aws-cdk/aws-ec2"); + +export class VPCStack extends cdk.Stack { + readonly Vpc: ec2.IVpc; + + constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { + super(scope, id, props); + const current_env = this.node.tryGetContext("env.type"); + + const vpc_cidr = this.node.tryGetContext("vpc.cidr"); + const vpc_maxAzs = this.node.tryGetContext("vpc.maxAzs"); + const vpc = new ec2.Vpc(this, current_env+"Vpc", { + cidr: vpc_cidr, + maxAzs: vpc_maxAzs + }); + this.Vpc = vpc; + } +} diff --git a/cdk/ts/MSK_example/package-lock.json b/cdk/ts/MSK_example/package-lock.json new file mode 100644 index 0000000..34a9c9c --- /dev/null +++ b/cdk/ts/MSK_example/package-lock.json @@ -0,0 +1,6486 @@ +{ + "name": "dev", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@aws-cdk/assert": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assert/-/assert-1.12.0.tgz", + "integrity": "sha512-q4FTHJl4uQxk8/vp9sf7D47QqICl4GhxdwIsnClk8HK1sJoCVfpfquhvcPtco6EtHl2j1yHX6T1Q2xhn1LkTvg==", + "dev": true, + "requires": { + "@aws-cdk/cloudformation-diff": "^1.12.0", + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0", + "jest": "^24.9.0", + "source-map-support": "^0.5.13" + } + }, + "@aws-cdk/assets": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.12.0.tgz", + "integrity": "sha512-8dEL6nEfwU4UANauoQnNpGflME5AujHGXBKEe4UEPDNgHbRD9UzVDSYH871KuTb151rdXvIoV7bzO5m77yrqLw==", + "requires": { + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0", + "minimatch": "^3.0.4" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@aws-cdk/aws-autoscaling": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.12.0.tgz", + "integrity": "sha512-BLfNp6c4NnCffkEeaq9ymV+rU5z4Sjk4wxiM3TtaM71CuNZvwosFivVJXUCoOYp4ew+YO/oRn8vk75o4wFWCNw==", + "requires": { + "@aws-cdk/aws-autoscaling-common": "^1.12.0", + "@aws-cdk/aws-cloudwatch": "^1.12.0", + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/aws-elasticloadbalancing": "^1.12.0", + "@aws-cdk/aws-elasticloadbalancingv2": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-sns": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-autoscaling-common": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.12.0.tgz", + "integrity": "sha512-VsU4Gx1Y6vPaeNP+17Bq8aJB1De8Q75utP55XHnxm67oC74TJXfEMYgzPgSX3vQS1aBMB1pgk5mUo/4xl7pvsA==", + "requires": { + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-certificatemanager": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.12.0.tgz", + "integrity": "sha512-imjEmPjVLtNsiPEXx3i3oLDxdkEUNOmnllL0QkXOwPthTy8l9GQhfa3GE8NGpsy7QBtr7vBrhc6qsKB5FMRFYw==", + "requires": { + "@aws-cdk/aws-cloudformation": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-lambda": "^1.12.0", + "@aws-cdk/aws-route53": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-cloudformation": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.12.0.tgz", + "integrity": "sha512-DY8oeVyTuwC9fkJK/VMTY0VSNymMrWsq0D7A3eRtKAMDO2bKkrRo5BSzkCIqmOgZayGTO8Iuvl1k6ESeN5AYew==", + "requires": { + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-lambda": "^1.12.0", + "@aws-cdk/aws-s3": "^1.12.0", + "@aws-cdk/aws-sns": "^1.12.0", + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0" + } + }, + "@aws-cdk/aws-cloudwatch": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.12.0.tgz", + "integrity": "sha512-GUlsa5/qqafbNXb2xbQs52nmYme/hjCydlOJAHXjhdvnq4pJ8f6/axtpq8Icfkg4UT5SG1d8jcl7WMT0e1Lmdg==", + "requires": { + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-ec2": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.12.0.tgz", + "integrity": "sha512-kmQKlQ6AOdK2PVPcgK0fqRr4qpvxmW6jZbHjzylIEYRwi1FbOMTEh0zVpguuB0i+hl8AHgdWMF0v13g25Lg82g==", + "requires": { + "@aws-cdk/aws-cloudwatch": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-ssm": "^1.12.0", + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0" + } + }, + "@aws-cdk/aws-eks": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-eks/-/aws-eks-1.12.0.tgz", + "integrity": "sha512-URy/AVWpXafpzqFB1n513Ej7ur8GXj1pCNtXn41qwlM1lfrSzN9S4hWA/SmF+KyFme3t9iP4+tvoDxYpRA0H5g==", + "requires": { + "@aws-cdk/aws-autoscaling": "^1.12.0", + "@aws-cdk/aws-cloudformation": "^1.12.0", + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-lambda": "^1.12.0", + "@aws-cdk/aws-ssm": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-elasticloadbalancing": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.12.0.tgz", + "integrity": "sha512-x/UggO5ACO9bzs2iynEmoJXM2xsVd4Utk+hni7NBHs3dqp1bNfmyqt1gdu4sFK8IdaOI+W8Cx+Eq6QlcE+RqUg==", + "requires": { + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-elasticloadbalancingv2": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.12.0.tgz", + "integrity": "sha512-V7LIulTMBEShEnY/uHKQKz0Nk6igsu65Xkj26O0hPwJ3VQ9HtX18YsAUuuejm42LKrs2dwJufa0qiUfw9IIS3A==", + "requires": { + "@aws-cdk/aws-certificatemanager": "^1.12.0", + "@aws-cdk/aws-cloudwatch": "^1.12.0", + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-lambda": "^1.12.0", + "@aws-cdk/aws-s3": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-elasticsearch": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticsearch/-/aws-elasticsearch-1.12.0.tgz", + "integrity": "sha512-EPlc/KNsii5HPAaDKoalKrRaJ+7jdh5g09rruW3f/3aCsb1Usm7Xgt2xHGX0PvgE4WaxvgjFlprt1vKW25vtLg==", + "requires": { + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-events": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.12.0.tgz", + "integrity": "sha512-xIc/qKhX5NvXF01MDuB6fLm26j1fHRSLWx2sk0if+gv/unAcMw3uK0z3UGhShf2YaJysewnrEPJ9fsBD6HOIww==", + "requires": { + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-iam": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.12.0.tgz", + "integrity": "sha512-fXtEhMek08wbwpIeQcglmM8NwhqdxHsQCNJAK2HfmZPdvXmUom+UYZoaQaZHyKnYt1Ou6daZOsU6JtIGGfjLiQ==", + "requires": { + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/region-info": "^1.12.0" + } + }, + "@aws-cdk/aws-kms": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.12.0.tgz", + "integrity": "sha512-fhO73MiZDUfpvA3E9+AlwYRLS/lFvmfwyWRBwVuXKTTNk0XPegZjhfLK5wHkJkRmK+ewj3ovfYPmC9L1QxARZw==", + "requires": { + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-lambda": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.12.0.tgz", + "integrity": "sha512-lQw/bpVomz1JB4UcdXtulBujicVUViAR2HcqwkJw54Vm4f6OaHA4KedwebOsiu5ZjfzhGqpqIrhNtIT08ZPF6g==", + "requires": { + "@aws-cdk/aws-cloudwatch": "^1.12.0", + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/aws-events": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-logs": "^1.12.0", + "@aws-cdk/aws-s3": "^1.12.0", + "@aws-cdk/aws-s3-assets": "^1.12.0", + "@aws-cdk/aws-sqs": "^1.12.0", + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0" + } + }, + "@aws-cdk/aws-logs": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.12.0.tgz", + "integrity": "sha512-++Mr/WtENAMgEzGyRO9xm74ULZxXzbAIE1FzMg7SdI0weUWN8rcHhfplSsNPcMQLt+nDGq42G/8QwvgB18sg1A==", + "requires": { + "@aws-cdk/aws-cloudwatch": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-msk": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-msk/-/aws-msk-1.12.0.tgz", + "integrity": "sha512-P/udTrOTBA/BbdkkUK/ExgSsuUtg+GqY5ifqSzb+yejKiFPWEdwzgTFRgaMjhJ0KnlbERbjU1bYwHl4CGB5TDQ==", + "requires": { + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-rds": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-rds/-/aws-rds-1.12.0.tgz", + "integrity": "sha512-Kw4KPnfpETw+sVT36G4scGoYepxmEo+l2ski308OT08GMvMJi1OqqOXdSzCTMaP52w4uCg7H/weBrDhN5K56qQ==", + "requires": { + "@aws-cdk/aws-cloudwatch": "^1.12.0", + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/aws-events": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-kms": "^1.12.0", + "@aws-cdk/aws-lambda": "^1.12.0", + "@aws-cdk/aws-logs": "^1.12.0", + "@aws-cdk/aws-sam": "^1.12.0", + "@aws-cdk/aws-secretsmanager": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-route53": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.12.0.tgz", + "integrity": "sha512-DqlU60KpQCMhJypGaKvqpC+DET9clTl7PJLqWv8yfvJbTGMlH4Pf1Iv/kn8uiSTimq5FnFLohpXs1rD6WUO4hA==", + "requires": { + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/aws-logs": "^1.12.0", + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0" + } + }, + "@aws-cdk/aws-s3": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.12.0.tgz", + "integrity": "sha512-AdImGtShC3shHFGtg7DBzauYnOBr3mL0WiI9o69IijBu3+lfUpePYqxr0cBHHxXhAVTrGADdAo/RyPvdbNd1Iw==", + "requires": { + "@aws-cdk/aws-events": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-kms": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-s3-assets": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.12.0.tgz", + "integrity": "sha512-qR4arr8Dqbsb7NpMDHv/wtMkJTW5Ovru4bCxCz9+wzYbiTpem1QFGLFKJb/5EnDqzKYzw2MtjHEIMdUmo608Gw==", + "requires": { + "@aws-cdk/assets": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-s3": "^1.12.0", + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0" + } + }, + "@aws-cdk/aws-sam": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.12.0.tgz", + "integrity": "sha512-pp1eVlDKChkLOi2q9OTidk7gAJst0OHtB1ywY6pnYwbPRhW2+53VSAvOHMAlpNs7Gs9p1xy8WSXLp0S8xi/zAQ==", + "requires": { + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-secretsmanager": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-secretsmanager/-/aws-secretsmanager-1.12.0.tgz", + "integrity": "sha512-+OhFhAEJc+3AI2sPJM+tA/i6yu0hkuwyOAuBc0VV94RCcja5vD/vUh1/w6M/4FDCnhJA0xc4RKDNYfPFCGog1Q==", + "requires": { + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-kms": "^1.12.0", + "@aws-cdk/aws-lambda": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-sns": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.12.0.tgz", + "integrity": "sha512-AwzJ+UqGStI1hwy6WKDii7Gp/ssF30a6c9wmodysfdxvZSKgKq3QBqkQVqYIg5eAZekdaomCpgFMbW1R8wPIZg==", + "requires": { + "@aws-cdk/aws-cloudwatch": "^1.12.0", + "@aws-cdk/aws-events": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-sqs": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.12.0.tgz", + "integrity": "sha512-/f4ZVqgmOGDKLSevwsA9MtCjwvTBGQ6S1mX8UdzHYbxnJYLmsXFysFJibZGoYy9Dxh9ZLe4dFTQmhZ5qSAcHtg==", + "requires": { + "@aws-cdk/aws-cloudwatch": "^1.12.0", + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/aws-kms": "^1.12.0", + "@aws-cdk/core": "^1.12.0" + } + }, + "@aws-cdk/aws-ssm": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.12.0.tgz", + "integrity": "sha512-RbSOZLiRvECjU1N+kbj0RPwretcEU5Xjtz4neuarSO4OyLM9Wcpbipm2rGS/+7A9rYVjJsIlrQ++3bhQAcjt6g==", + "requires": { + "@aws-cdk/aws-iam": "^1.12.0", + "@aws-cdk/core": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0" + } + }, + "@aws-cdk/cfnspec": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cfnspec/-/cfnspec-1.12.0.tgz", + "integrity": "sha512-FkMrUNmAXIR+Ij7mDGZ7RT3RpkwK6fH/sO6KVBettpcE9JgKx2aP6hbq98pGScICrjpJ7V11H27Qr4pbmm6EbA==", + "dev": true, + "requires": { + "md5": "^2.2.1" + } + }, + "@aws-cdk/cloudformation-diff": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloudformation-diff/-/cloudformation-diff-1.12.0.tgz", + "integrity": "sha512-tam1/oxnANO/l8A9/eL6BVs5Gj0IhSYOiv3SkMN/6rNcOS9t3XQd8h5RNPgvJizyqmDsFV9OFrWGcDBGPGfKfA==", + "dev": true, + "requires": { + "@aws-cdk/cfnspec": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0", + "colors": "^1.4.0", + "diff": "^4.0.1", + "fast-deep-equal": "^2.0.1", + "source-map-support": "^0.5.13", + "string-width": "^4.1.0", + "table": "^5.4.6" + } + }, + "@aws-cdk/core": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.12.0.tgz", + "integrity": "sha512-70eXa4Xv4F4NMISpGf+bkiUky8iQ04upByW9QJtqoxaFheg89pMVnMClqvAPs934C0ig97/gW2oQLIuY+0CrEg==", + "requires": { + "@aws-cdk/cx-api": "^1.12.0" + } + }, + "@aws-cdk/cx-api": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.12.0.tgz", + "integrity": "sha512-Qa2/WiOzW4BjgXzdqvxvea1A/i7DCQgiyzUlqYQM3e8Fj61SEPMOkF6pc5ulXkAXmqYdY3k+aG2nhfkp8dv51A==", + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "bundled": true + } + } + }, + "@aws-cdk/region-info": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.12.0.tgz", + "integrity": "sha512-eSNKN/rXpV9eVG5yuxxC1UpZULgljSKfRBjfoCmqgUBij5VXjGfsQ+g9whr65R3KIx4mSRYVYU0SimWZV+EF5g==" + }, + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", + "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.2", + "@babel/helpers": "^7.6.2", + "@babel/parser": "^7.6.2", + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz", + "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==", + "dev": true, + "requires": { + "@babel/types": "^7.6.0", + "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=", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/helpers": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", + "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", + "dev": true, + "requires": { + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz", + "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==", + "dev": true + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/runtime": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.2.tgz", + "integrity": "sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/runtime-corejs2": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.6.2.tgz", + "integrity": "sha512-wdyVKnTv9Be4YlwF/7pByYNfcl23qC21aAQ0aIaZOo2ZOvhFEyJdBLJClYZ9i+Pmrz7sUQgg/MwbJa2RZTkygg==", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/template": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" + } + }, + "@babel/traverse": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz", + "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.6.2", + "@babel/types": "^7.6.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@cnakazawa/watch": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", + "integrity": "sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.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==", + "dev": true, + "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==", + "dev": true, + "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" + } + }, + "@jest/environment": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", + "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" + } + }, + "@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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@types/babel__core": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", + "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", + "dev": true, + "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.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.0.tgz", + "integrity": "sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.7.tgz", + "integrity": "sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", + "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", + "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "24.0.18", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.18.tgz", + "integrity": "sha512-jcDDXdjTcrQzdN06+TSVsPPqxvsZA/5QkYfIZlq1JMw7FdP5AZylbOc+6B/cuDurctRe+MziUMtQ3xQdrbjqyQ==", + "dev": true, + "requires": { + "@types/jest-diff": "*" + } + }, + "@types/jest-diff": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz", + "integrity": "sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA==", + "dev": true + }, + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", + "dev": true + }, + "@types/yargs": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz", + "integrity": "sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz", + "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", + "dev": true + }, + "abab": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.2.tgz", + "integrity": "sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg==", + "dev": true + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "dev": true + } + } + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "archiver": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", + "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "async": "^2.6.3", + "buffer-crc32": "^0.2.1", + "glob": "^7.1.4", + "readable-stream": "^3.4.0", + "tar-stream": "^2.1.0", + "zip-stream": "^2.1.2" + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.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==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": 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" + } + } + } + }, + "arg": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.1.tgz", + "integrity": "sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw==", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "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==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "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==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "aws-cdk": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-1.12.0.tgz", + "integrity": "sha512-uf+MpYXvJy8RZiMbHf/ogDA+U1bPqn9uIyAz/xsp0ml6IXtgJMWySqaHnxSLaReHU92PYEI/vk2NA609lZ68hg==", + "dev": true, + "requires": { + "@aws-cdk/cloudformation-diff": "^1.12.0", + "@aws-cdk/cx-api": "^1.12.0", + "@aws-cdk/region-info": "^1.12.0", + "archiver": "^3.1.1", + "aws-sdk": "^2.543.0", + "camelcase": "^5.3.1", + "colors": "^1.4.0", + "decamelize": "^3.2.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.4", + "json-diff": "^0.5.4", + "minimatch": ">=3.0", + "promptly": "^3.0.3", + "proxy-agent": "^3.1.0", + "request": "^2.88.0", + "semver": "^6.3.0", + "source-map-support": "^0.5.13", + "table": "^5.4.6", + "yaml": "^1.7.0", + "yargs": "^14.0.0" + }, + "dependencies": { + "decamelize": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz", + "integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==", + "dev": true, + "requires": { + "xregexp": "^4.2.4" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "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=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "yargs": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.0.tgz", + "integrity": "sha512-/is78VKbKs70bVZH7w4YaZea6xcJWOAwkhbR0CFuZBmYtfTYF0xjGJF43AYd8g2Uii1yJwmS5GR2vBmrc32sbg==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.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": "^15.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + } + } + } + } + }, + "aws-sdk": { + "version": "2.544.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.544.0.tgz", + "integrity": "sha512-wwiBJgAUGKXY/xoCSrUXVZnNtefoH3YcPwGxQrQXOIDnLMQ32yh/SWc52qmwdxA7WJzpTcIj8y+5keH3P1LYaw==", + "dev": true, + "requires": { + "buffer": "4.9.1", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, + "dependencies": { + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, + "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=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "babel-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", + "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", + "dev": true, + "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-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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@types/babel__traverse": "^7.0.6" + } + }, + "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==", + "dev": true, + "requires": { + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "babel-plugin-jest-hoist": "^24.9.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "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==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", + "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", + "dev": true, + "requires": { + "readable-stream": "^3.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "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==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "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=", + "dev": true + } + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz", + "integrity": "sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", + "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "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==" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "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" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-0.1.7.tgz", + "integrity": "sha1-rcMgD6RxzCEbDaf1ZrcemLnWc0c=", + "dev": true, + "requires": { + "es5-ext": "0.8.x" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "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==", + "dev": true + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "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=", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", + "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", + "dev": true, + "optional": true + }, + "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==", + "dev": true + }, + "compress-commons": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", + "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": 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" + } + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", + "dev": true + }, + "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=", + "dev": true + }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "requires": { + "buffer": "^5.1.0" + } + }, + "crc32-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "dev": true, + "requires": { + "crc": "^3.4.4", + "readable-stream": "^3.4.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", + "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", + "dev": true + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "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=", + "dev": true + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "dev": true, + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "diff": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", + "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", + "dev": true + }, + "diff-sequences": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", + "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", + "dev": true + }, + "difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha1-teMDYabbAjF21WKJLbhZQKcY9H4=", + "dev": true, + "requires": { + "heap": ">= 0.2.0" + } + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "dreamopt": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.6.0.tgz", + "integrity": "sha1-2BPM2sjTnYrVJndVFKE92mZNa0s=", + "dev": true, + "requires": { + "wordwrap": ">=0.0.2" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", + "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.0.0", + "string.prototype.trimright": "^2.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.8.2.tgz", + "integrity": "sha1-q6jZ4ZQ6iVrJaDemKjmz9V7NlKs=", + "dev": true + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "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=", + "dev": true + }, + "escodegen": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", + "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "exec-sh": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz", + "integrity": "sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "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=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "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": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expect": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", + "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", + "dev": true, + "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" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true, + "requires": { + "bser": "^2.0.0" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "dev": true, + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "dev": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-uri": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.3.tgz", + "integrity": "sha512-x5j6Ks7FOgLD/GlvjKwgu7wdmMR55iuRHhn8hj/+gA+eSbxQvZ+AEomq+3MgVEZj1vpi738QahGbCCSIDtXtkw==", + "dev": true, + "requires": { + "data-uri-to-buffer": "2", + "debug": "4", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "handlebars": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.0.tgz", + "integrity": "sha512-xkRtOt3/3DzTKMOt3xahj2M/EqNhY988T+imYSlMgs5fVhLN2fmKVVj0LtEGmb+3UUYV5Qmm1052Mm3dIQxOvw==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "heap": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", + "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", + "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz", + "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "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==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.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=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "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==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "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==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", + "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "dev": true, + "requires": { + "handlebars": "^4.1.2" + } + }, + "jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", + "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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-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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", + "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "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==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "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-watcher": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", + "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", + "dev": true, + "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" + } + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "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==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "dev": true, + "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" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-diff": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-0.5.4.tgz", + "integrity": "sha512-q5Xmx9QXNOzOzIlMoYtLrLiu4Jl/Ce2bn0CNcv54PhyH89CI4GWlGVDye8ei2Ijt9R3U+vsWPsXpLUNob8bs8Q==", + "dev": true, + "requires": { + "cli-color": "~0.1.6", + "difflib": "~0.2.1", + "dreamopt": "~0.6.0" + } + }, + "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==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "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==", + "dev": true + }, + "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=", + "dev": true + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": 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" + } + } + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true + }, + "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==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "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=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "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==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "dev": true, + "requires": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "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==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "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" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "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==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "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=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nwsapi": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz", + "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "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=", + "dev": true, + "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=", + "dev": true + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.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=", + "dev": true + }, + "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==", + "dev": true + }, + "pac-proxy-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", + "integrity": "sha512-AOUX9jES/EkQX2zRz0AW7lSx9jD//hQS8wFXBvcnd/J2Py9KaMJMqV/LPqJssj1tgGufotb2mmopGPR15ODv1Q==", + "dev": true, + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "dev": true, + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "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==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "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=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "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==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "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==", + "dev": true + }, + "promptly": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/promptly/-/promptly-3.0.3.tgz", + "integrity": "sha512-EWnzOsxVKUjqKeE6SStH1/cO4+DE44QolaoJ4ojGd9z6pcNkpgfJKr1ncwxrOFHSTIzoudo7jG8y0re30/LO1g==", + "dev": true, + "requires": { + "pify": "^3.0.0", + "read": "^1.0.4" + } + }, + "prompts": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz", + "integrity": "sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.3" + } + }, + "proxy-agent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.0.tgz", + "integrity": "sha512-IkbZL4ClW3wwBL/ABFD2zJ8iP84CY0uKMvBPk/OceQe/cEjrxzN1pMHsLwhbzUoRhG9QbSxYC+Z7LBkTiBNvrA==", + "dev": true, + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^3.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "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==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "16.10.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.1.tgz", + "integrity": "sha512-BXUMf9sIOPXXZWqr7+c5SeOKJykyVr2u0UDzEf4LNGc6taGkQe1A9DFD07umCIXz45RLr9oAAwZbAJ0Pkknfaw==", + "dev": true + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "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==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.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==", + "dev": true, + "requires": { + "util.promisify": "^1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "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=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + } + } + }, + "request-promise-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", + "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "request-promise-native": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", + "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", + "dev": true, + "requires": { + "request-promise-core": "1.1.2", + "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=", + "dev": true + }, + "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==", + "dev": true + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, + "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==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "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==", + "dev": true + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "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" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "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=", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sisteransi": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz", + "integrity": "sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "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=", + "dev": true + } + } + }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "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": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", + "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "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.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "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=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "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" + } + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "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=", + "dev": true, + "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=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", + "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "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=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.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==", + "dev": true + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "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==", + "dev": true + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "tar-stream": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", + "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", + "dev": true, + "requires": { + "bl": "^3.0.0", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "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==", + "dev": true, + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + } + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "dev": true + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", + "dev": true + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "ts-jest": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.1.0.tgz", + "integrity": "sha512-HEGfrIEAZKfu1pkaxB9au17b1d9b56YZSqz5eCVE8mX68+5reOvlM93xGOzzCREIov9mdH7JBG+s0UyNAqr0tQ==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "mkdirp": "0.x", + "resolve": "1.x", + "semver": "^5.5", + "yargs-parser": "10.x" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "ts-node": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz", + "integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "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=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "typescript": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.4.tgz", + "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==", + "dev": true + }, + "uglify-js": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", + "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.20.0", + "source-map": "~0.6.1" + } + }, + "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==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + } + } + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, + "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=", + "dev": true + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.x" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "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==", + "dev": true + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + }, + "xregexp": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.2.4.tgz", + "integrity": "sha512-sO0bYdYeJAJBcJA8g7MJJX7UrOZIfJPd8U2SC7B2Dd/J24U0aQNoGp33shCaBSWeb0rD5rh6VBUIXOkGal1TZA==", + "dev": true, + "requires": { + "@babel/runtime-corejs2": "^7.2.0" + } + }, + "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==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yaml": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.1.tgz", + "integrity": "sha512-sR0mJ2C3LVBgMST+0zrrrsKSijbw64bfHmTt4nEXLZTZFyIAuUVARqA/LO5kaZav2OVQMaZ+5WRrZv7QjxG3uQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "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.1" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "zip-stream": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.2.tgz", + "integrity": "sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^2.1.1", + "readable-stream": "^3.4.0" + } + } + } +} diff --git a/cdk/ts/MSK_example/package.json b/cdk/ts/MSK_example/package.json new file mode 100644 index 0000000..93bb30f --- /dev/null +++ b/cdk/ts/MSK_example/package.json @@ -0,0 +1,28 @@ +{ + "name": "dev", + "version": "0.1.0", + "bin": { + "dev": "bin/dev.js" + }, + "scripts": { + "build": "tsc", + "watch": "tsc -w", + "test": "jest", + "cdk": "cdk" + }, + "devDependencies": { + "@aws-cdk/assert": "^1.12.0", + "@types/jest": "^24.0.18", + "aws-cdk": "^1.12.0", + "jest": "^24.9.0", + "ts-jest": "^24.1.0", + "ts-node": "^8.4.1", + "typescript": "~3.6.4" + }, + "dependencies": { + "@aws-cdk/aws-ec2": "^1.12.0", + "@aws-cdk/aws-msk": "^1.12.0", + "@aws-cdk/core": "^1.12.0", + "source-map-support": "^0.5.13" + } +} diff --git a/cdk/ts/MSK_example/tsconfig.json b/cdk/ts/MSK_example/tsconfig.json new file mode 100644 index 0000000..3f61627 --- /dev/null +++ b/cdk/ts/MSK_example/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target":"ES2018", + "module": "commonjs", + "lib": ["es2016", "es2017.object", "es2017.string"], + "declaration": true, + "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noImplicitThis": true, + "alwaysStrict": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": false, + "inlineSourceMap": true, + "inlineSources": true, + "experimentalDecorators": true, + "strictPropertyInitialization":false, + "typeRoots": ["./node_modules/@types"] + }, + "exclude": ["cdk.out"] +} diff --git a/cdk/ts/README.md b/cdk/ts/README.md new file mode 100644 index 0000000..ddb5530 --- /dev/null +++ b/cdk/ts/README.md @@ -0,0 +1,3 @@ +# CDK TypeScript Examples + +* MSK + VPC \ No newline at end of file diff --git a/gpc/.gitignore b/gpc/.gitignore new file mode 100644 index 0000000..894a44c --- /dev/null +++ b/gpc/.gitignore @@ -0,0 +1,104 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ diff --git a/gpc/README.md b/gpc/README.md new file mode 100755 index 0000000..d3f6bd8 --- /dev/null +++ b/gpc/README.md @@ -0,0 +1,6 @@ +# GCP Resources + + +* `slides_data_engineering/`: private resources from [GPC data engineering training](https://cloud.google.com/training/data-ml). +* `slides_infrastructure/`: private resources from [GCP infra training](https://cloud.google.com/training/cloud-infrastructure). +* `labs/`: laboratory exercises from the resources above. diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining.htm b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining.htm new file mode 100755 index 0000000..5d8cbd7 --- /dev/null +++ b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining.htm @@ -0,0 +1,1704 @@ + + + + + + + +Leveraging Unstructured Data | Qwiklabs + roitraining + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +menu + +
+arrow_back + +

+Leveraging Unstructured Data +

+
+
+ + +
+
+
+ + +
+ +
+ +
+
+ + +
+
+ + + +
+
+
+
+
+ +480m access +· +480m completion + +
+ + +
+
+
+
+
+Connection Details +
+ + +
+
+ + + +
+
+ +
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + +
+
+
+
+
+ + +
+ +
+
+
+
+
+ +
+
+ +
+ +
+

+ 08:00:00 +

+
+
+ +
+
+
+
+
+ +

LEVERAGING UNSTRUCTURED DATA

+ +

GETTING STARTED WITH GCP CONSOLE

+ +

When the lab is ready a green button will appear that looks like this:

+ +

2fa0ccada9d929f0.png

+ +

When you are ready to begin, click Start Lab.

+ +

Logging in to Google Cloud Platform

+ +

Step 1: Locate the Username, Password and Project Id

+ +

Press the green [Start] button to start the lab. After setup is completed you will see something similar to this on the right side of the Qwiklabs window:

+ +

eaa80bb0490b07d0.png

+ +

Step 2: Browse to Console

+ +

Open an Incognito window in your browser.
+And go to http://console.cloud.google.com

+ +

Step 3: Sign in to Console

+ +

Log in with the Username and Password provided. The steps below are suggestive. The actual dialog and procedures may vary from this example.

+ +

1c492727805af169.png

+ +

Step 4: Accept the conditions

+ +

Accept the new account terms and conditions.

+ +

32331ec60c5f6609.png

+ +

This is a temporary account. You will only have access to the account for this one lab.

+
  • Do not add recovery options
  • +
  • Do not sign up for free trials
  • +
+

Step 5: Don't change the password

+ +

If prompted, don't change the password. Just click [Continue].

+ +

ef164317a73a66d7.png

+ +

Step 6 Agree to the Terms of Service

+ +

Select (x) Yes, (x) _Yes and click _[AGREE AND CONTINUE].

+ +

e0edec7592d289e1.png

+ +

Step 7: Console opens

+ +

The Google Cloud Platform Console opens.

+ +

You may see a bar occupying the top part of the Console inviting you to sign up for a free trial. You can click on the [DISMISS] button so that the entire Console screen is available.

+ +

a1b4bfec239cc863.png

+ +

Step 8: Switch project (if necessary)

+ +

On the top blue horizontal bar, click on the drop down icon to select the correct project (if not already so). You can confirm the project id from your Qwiklabs window (shown in step 1 above).

+ +

849103afbf5e9178.png

+ +

Click on "view more projects" if necessary and select the correct project id.

+ +

PART 1: CREATING DATAPROC CLUSTERS

+ +

Overview

+ +

Duration is 1 min

+ +

In this lab, you will create, customize and delete Dataproc clusters using the Web console and the command line interface (CLI). You will also connect to the cluster using SSH, and run a couple simple jobs. You will also access the cluster's Hadoop and HDFS services from the browser.

+ +

What you learn

+ +

In this lab, you:

+
  • Create a Dataproc cluster from the Web console
  • +
  • SSH into the cluster and run PySpark jobs
  • +
  • Add a firewall rule that allows access to your cluster from the browser
  • +
  • Create, manage and delete Dataproc clusters from the CLI
  • +
+

Introduction

+ +

Duration is 1 min

+ +

Dataproc is a managed service for creating clusters of computers that can be used to run Hadoop and Spark applications. Dataproc clusters are pre-configured with software commonly used in Hadoop ecosystems like Python, Java, PySpark, Pig and Hive. Dataproc clusters are also pre-configured with HDFS.

+ +

Dataproc clusters can easily be created in just a couple minutes and clusters can be easily configured to run jobs both big and small. Because clusters can be created so quickly, they can also be deleted as soon and jobs are complete. With Google's per-minute billing, this allows jobs to be run at a minimal cost.

+ +

Dataproc requires no upfront payment. You only pay for the resources used for the time the clusters are running.

+ +

Before you begin

+ +

Duration is 1 min

+ +

If you have not started the lab, go ahead and click the green "Start Lab" button. Once done, it will display credentials for this lab. Repeat the steps in Lab 0 to log into the Cloud console with the credentials provided in this lab.

+ +

Here is a quick reference:

+ +

Open new incognito window → go to cloud console → login with provided credentials → follow the prompts → switch project if necessary

+ +

Create Clusters with the Web Console

+ +

Duration is 10 min

+ +

You will first create a cluster using the Google Cloud Platform Web Console.

+ +

Step 1

+ +

Open the Cloud Platform Console and navigate to the project you are using for this course.

+ +

Note: If a different project is selected, click the project name to the right of Google Cloud Platform in the title bar and choose the right one.

+
+ +

Step 2

+ +

Click the menu on the left and select Compute Engine. This ensures that any necessary fraud checks are carried out and APIs are enabled. It will reduce the wait times associated with later steps if you do this now.

+ +

Step 3

+ +

Click the menu icon on the left corner of the Google Cloud Platform Web Console, scroll down to the Big Data section and select Dataproc.

+ +

Note: If you get an "Enable API" popup, go ahead and click Enable.

+ +

Step 4

+ +

Click the Create cluster button. This opens the Create a cluster page.

+ +

Step 5

+ +

You will create the smallest possible cluster.

+
  • Name your cluster my-first-cluster.
  • +
  • Select the zone us-central1-a.
  • +
  • In the Master node | Machine type drop-down select the first machine n1-standard1(1vCPU, 3.75GB memory).
  • +
  • Change the master node's primary disk size to 10 GB.
  • +
  • In the Worker nodes | Machine type drop-down also select the first machine n1-standard1(1vCPU, 3.75GB memory).
  • +
  • Leave the number of worker nodes at the default of 2.
  • +
  • Also change the worker node's primary disk size to 10 GB.
  • +
+

Step 6

+ +

Click the Create button at the bottom on the page. It will take a couple minutes for the cluster to be ready.

+ +

Accessing the Cluster Master with SSH

+ +

Duration is 15 min

+ +

You will SSH into the master node and and discover what is installed and run a simple job.

+ +

Step 1

+ +

When you see a green check next to the cluster you just created click on the cluster name. This opens the Cluster details page.

+ +

8b7a99b7a9f13fec.png

+ +

Step 2

+ +

Click the VM Instances tab to see a list of machines in your cluster. Click on the master node (my-first-cluster-m), to see that machine's details.

+ +

Step 3

+ +

Click the SSH button to connect to that machine. This will open a new window or tab in your browser with a terminal window that is connected to your master node machine.

+ +

3d2672578e8efc6e.png

+ +

Step 4

+ +

Type the following command to see what version of Python is installed.

+
python --version
+
+

Step 5

+ +

Enter the following commands as well to see some of the programs that are pre-installed on the machine.

+
java -version
+
+scala -version
+
+pyspark --version
+
+pig --version
+
+hive --version
+
+

Accessing the Cluster Master with the Browser

+ +

Duration is 10 min

+ +

Step 1

+ +

In the Google Cloud Platform Web Console, click the menu on the left and select VPC Network > Firewall rules from the Networking section.

+ +

Step 2

+ +

You are going to allow access to your Dataproc cluster, but only to your machine. To do this, you will need to know your IP Address. Go to the following URL to find out what it is:

+ +

http://ip4.me/

+ +

Step 3

+ +

Click Firewall rules in the left-hand navigation pane. Click on the Create Firewall Rule button. Then, Enter the following:

+
  • Name the rule .
  • +
  • For Targets, select "All instances in the network"
  • +
  • Select IP ranges from the Source filter dropdown.
  • +
  • In the source IP ranges text box enter your ip address followed by /32. So if your IP address is 1.2.3.4 then the text box would read 1.2.3.4/32.
  • +
  • For Protocols and ports, select "Specified Protocols and ports", and enter the following in the text box:
  • +
+

+ +

7e8f56804afdc372.png

+ +

Once you have confirmed your entries, click Create.

+ +

Note: This firewall rule allows access to tcp port 8088 which is Hadoop, 9870 which is HDFS and 8080 which is Datalab. We will install Datalab later in the course.

+
+ +

Step 4

+ +

In the Web Console go back to the Dataproc service. Click on your cluster to open its details. Then, click on VM Instances, then click on your master node to see its details.

+ +

Scroll down and find your master node's external ip address, select it and copy it to your clipboard.

+ +

You could also find the master node's IP address from the Compute Engine service. All the nodes in the Dataproc cluster are really Compute Engine virtual machines. Go to the Products and Services menu and select Compute Engine. Find your master node, it should be named my-first-cluster-m. You can copy the external IP address from the machine's details.

+ +

Step 5

+ +

Open a new tab in your browser and paste in the ip address of your master and then type :8088 to access Hadoop. It should open a page that looks like the one below.

+ +

d46461be5babfd8e.png

+ +

Step 6

+ +

Click on the various links on the left and explore the information.

+ +

Step 7

+ +

Now, open another browser tab, paste in the master node's IP address, followed by the port 9870. This opens a site with information about your HDFS cluster similar to as shown below. Explore this as well.

+ +

4cf8b1cc09c73465.png

+ +

Step 7

+ +

Close the Hadoop and HDFS browser tabs. Go back to the window with the console and close it as well.

+ +

Step 8

+ +

In the Web Console, return to the Dataproc service home page. Select the checkbox next to your cluster and click the Delete button.

+ +

cbd1d76f1142c4c5.png

+ +

Managing Clusters with the CLI

+ +

Duration is 10 min

+ +

You will now create a cluster using the command line interface (CLI).

+ +

Step 1

+ +

In the Google Cloud Platform Web Console, use the menu to navigate to the Dataproc service.

+ +

Step 2

+ +

Now, click on the Activate Google Cloud Shell icon on the right side of the toolbar. This will open a Cloud Shell terminal window on the bottom of your browser.

+ +

ec9e03355c83c22a.png

+ +

Step 3

+ +

Paste the following command into cloud shell and hit Enter. This command creates a Dataproc cluster named my-second-cluster in the us-central1-a zone. It creates a master node with 1 CPU and a 50 GB disk and 2 worker nodes with the same resources.

+
gcloud dataproc clusters create my-second-cluster --zone us-central1-a \
+        --master-machine-type n1-standard-1 --master-boot-disk-size 50 \
+        --num-workers 2 --worker-machine-type n1-standard-1 \
+        --worker-boot-disk-size 50 
+
+

Step 4

+ +

Notice, on the Dataproc home screen at the top of your browser that a cluster is being created (if you do not see it, click the Refresh link on your Clusters page). When the green check appears, click on the cluster and explore its details.

+
  • What machine type is used for the master and worker nodes?
  • +
  • How many workers nodes were created?
  • +
+

Step 5

+ +

Paste the following command into cloud shell and hit Enter. This command deletes the cluster you just created. When prompted, confirm that you want to delete your cluster.

+
gcloud dataproc clusters delete my-second-cluster
+
+

Step 6

+ +

Wait for your cluster to go away in the Web console (you may need to click on Clusters on the menu on the left, and click Refresh). Then click the Create cluster button. Fill in the form with the following settings, but do not click the Create button.

+
  • Name the cluster my-third-cluster.
  • +
  • Set the zone to one near you (whichever one you wish).
  • +
  • Set master node machine type to the smallest machine available.
  • +
  • Set the worker nodes machine type to the smallest machine available.
  • +
  • Specify 2 worker nodes
  • +
+

Below the Create and Cancel buttons, click the link which reads command line. This pops up a window with a command that uses the settings you've specified. Copy this command to the clipboard, close the window and then paste it into the Cloud Shell and run it.

+ +

Click the Cancel button on the Create a cluster page. Notice another cluster is being created.

+ +

Step 7

+ +

When the cluster is done initializing, explore its details and make sure it was created as you expected.

+ +

Step 8

+ +

Using the Web Console Products and Services menu, go to the Compute Engine service. Notice the master and worker nodes are really Compute Engine virtual machines.

+ +

Cleanup

+ +

Duration is 1 min

+ +

There's no need to keep any clusters.

+ +

Step 1

+ +

Navigate to the Dataproc service using the Web Console. Delete any clusters that you created in this exercise.

+ + + +

+

Stop here if you are done. Wait for instructions from the Instructor before going into the next section

+
+ +

PART 2: RUNNING PIG AND SPARK JOBS

+ +

Overview

+ +

Duration is 1 min

+ +

In this lab, you will run Pig and Spark programs on a Dataproc cluster.

+ +

What you learn

+ +

In this lab, you:

+
  • SSH into the cluster to run Pig and Spark job
  • +
  • Create a Cloud Storage bucket to store job input files
  • +
  • Work with HDFS
  • +
+

Introduction

+ +

Duration is 1 min

+ +

Google Cloud Dataproc supports running jobs written in Apache Pig, Apache Hive, Apache Spark, and other tools commonly used in the Apache Hadoop ecosystem.

+ +

For development purposes, you can SSH into the cluster master and execute jobs using the PySpark Read-Evaluate-Process-Loop (REPL) interpreter.

+ +

Let's take a look at how this works.

+ +

Creating a Dataproc Cluster and storage bucket

+ +

Duration is 5 min

+ +

You will create a cluster and also create a storage bucket that will hold some files that you will use to submit jobs.

+ +

Step 1

+ +

If you did not create a firewall rule called in the previous section, please do so now. You will have to find your IP address using http://ip4.me/ and then go to the Networking section of the GCP console. Select VPC Network > Firewall rules. Click on the Create Firewall Rule button. Then, Enter the following:

+
  • Name the rule default-allow-dataproc-access.
  • +
  • For Targets, select "All instances in the network"
  • +
  • Select IP ranges from the Source filter dropdown.
  • +
  • In the source IP ranges text box enter your ip address followed by /32. So if your IP address is 1.2.3.4 then the text box would read 1.2.3.4/32.
  • +
  • For Protocols and ports, select "Specified Protocols and ports", and enter the following in the text box:
  • +
+

+ +

If you created the firewall rule in the previous lab, but you are connecting from a different network IP address, modify the firewall rule in the networking section to add your new IP address.

+ +

Step 2

+ +

In Google Cloud Shell, enter the following command to create a cluster:

+
gcloud dataproc clusters create my-cluster --zone us-central1-a \
+        --master-machine-type n1-standard-1 --master-boot-disk-size 50 \
+        --num-workers 2 --worker-machine-type n1-standard-1 \
+        --worker-boot-disk-size 50 --network=default
+
+

Step 3

+ +

In __Google Cloud Shell, __enter the following command to create a Cloud Storage bucket with the same name as your project ID in the same region as your cluster. Both Cloud Storage buckets and Project ID's have to be unique, so unless you are very unlucky your project ID would not have been previously used for a bucket name.

+
gsutil mb -c regional -l us-central1 gs://$DEVSHELL_PROJECT_ID
+
+

Step 4

+ +

Use the menu in the Web Console to navigate to the Storage service. Confirm that your bucket was created.

+ +

Copy code and files to bucket

+ +

Step 1

+ +

Open __Google Cloud Shell __and enter the commands below to copy some pre-created files into your bucket (make sure to plug in your bucket name).

+
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
+cd training-data-analyst/courses/unstructured
+./replace_and_upload.sh <YOUR-BUCKET-NAME>
+
+

Developing using PySpark REPL

+ +

Duration is 15 min

+ +

You will SSH into the master node and and run the Python Spark Read-Evaluate-Process-Loop (REPL) interpreter.

+ +

Step 1

+ +

Navigate to your Dataproc cluster and click on the cluster name. This opens the Cluster details page.

+ +

8b7a99b7a9f13fec.png

+ +

Step 2

+ +

Click the VM Instances tab to see a list of machines in your cluster. Click on the master node (my-cluster-m), to see that machine's details.

+ +

Step 3

+ +

Click the SSH button to connect to that machine. This will open a new window or tab in your browser with a terminal window that is connected to your master node machine.

+ +

3d2672578e8efc6e.png

+ +

Step 4

+ +

Type pyspark at the command prompt to open the PySpark shell.

+ +

Step 5

+ +

Enter the following code and then hit Enter to run a simple PySpark job.

+
data = [0, 1, 2, 3, 4, 5]  # range(6)
+distData = sc.parallelize(data)
+squares = distData.map(lambda x : x*x)
+res = squares.reduce(lambda a, b : a + b)
+print res
+
+

What does this program do?

+ +

Step 6

+ +

This step is optional -- please feel free to skip this step. Write a PySpark program to compute the square root of the sum of the first 1000 terms of this series starting at k=0:

+
8.0/((2k+1)(2k+1))
+
+

i.e. compute:

+ +

f7946c282c099cf4.png

+ +

What is the result? (one potential solution is shown below)

+
import numpy as np
+data = range(1000)
+distData = sc.parallelize(data)
+terms = distData.map(lambda k : 8.0/((2*k+1)*(2*k+1)))
+res = np.sqrt(terms.sum())
+print res
+
+

It's your favorite irrational number!

+ +

Step 7

+ +

Exit Spark by typing:

+
quit()
+
+

Step 8

+ +

While you could develop and run PySpark programs using the REPL, a more common way to develop PySpark programs is to use a Python notebook, and a more common way to execute PySpark programs to submit a Python file. You will do both of these in subsequent sections and labs.

+ +

Pig Job that reads from HDFS

+ +

Duration is 15 min

+ +

You will now execute a Pig job and view its results. You will also use the HDFS cluster provided by Google Cloud Dataproc

+ +

Step 1

+ +

If you don't have the SSH terminal to the cluster master still available, navigate to the Dataproc service in the Web console and click on the Clusters link. Click on your cluster (it should be named *__*my-cluster) to see its details, then click the __VM Instances tab, and then click on the master node to view its details. Finally, click the SSH button to connect to the master.

+ +

Step 2

+ +

Enter the following command to create a directory for this exercise and move into it:

+
mkdir lab2
+cd lab2
+
+

Step 3

+ +

Enter the following command to copy a data file and a pig script into the folder you just created. Make sure to plug in your actual bucket name.

+
gsutil -m cp gs://<YOUR-BUCKET-NAME>/unstructured/pet-details.* .
+
+

Two files were copied from Cloud Storage to the cluster. You can view them by entering the following commands.

+
cat pet-details.txt
+
+

This just shows a simple data file we will copy into HDFS and then transform using Pig. Enter the following command to see the Pig script you will run, and take a minute to study it.

+
cat pet-details.pig
+
+

Step 4

+ +

Now let's copy the text file into HDFS. Use the following code.

+
hadoop fs -mkdir /pet-details
+hadoop fs -put pet-details.txt /pet-details
+
+

Step 5

+ +

Go back to the Web console and the details of your master node. Find the master node's external IP address and copy it to the clipboard. Then, open a new tab in your browser, paste in the ip address and then add :9870. This will open the Hadoop management site. From the Utilities menu on the right select Browse the file system.

+ +

Verify that you have a folder called pet-details and inside it you should have a file called pet-details.txt.

+ +

Step 6

+ +

In your SSH window, run the following command to run Pig:

+
pig < pet-details.pig
+
+

Click Submit to start the job. It will take about a minute to run. Wait until it completes.

+ +

Step 7

+ +

Go back to the tab with the Hadoop management site and again browse the file system. The output from this Pig job should be in a folder called GroupedByType. If you look in that folder you should see a file named part-r-00000.

+ +

Step 8

+ +

Let's look at the output file.

+ +

First you have to get the file off the HDFS file system. Go back to your SSH session where you are connected to the master node. You should currently be in the folder lab2. Make a directory below it and move into by entering the following commands.

+
mkdir ~/lab2/output
+cd ~/lab2/output
+
+

Step 9

+ +

Enter the following command to get the output file from HDFS and copy it into this folder.

+
hadoop fs -get /GroupedByType/part* .
+
+

Finally, enter the following command to view the results.

+
cat *
+
+

Compare the original data file, the Pig script and the final output. Try to figure out why the output is the way it is.

+ +

Cleanup

+ +

Duration is 1 min

+ +

There's no need to keep any clusters.

+ +

Step 1

+ +

Close the hadoop tab as well as the SSH window.

+ +

Step 2

+ +

Navigate to the Dataproc service using the Web Console. Delete any clusters that you created in this exercise.

+ + + +

+

Stop here if you are done. Wait for instructions from the Instructor before going into the next section

+
+ +

PART 3: SUBMITTING DATAPROC JOBS

+ +

Overview

+ +

Duration is 1 min

+ +

In this lab, you will create a Dataproc cluster. You will then submit some jobs to the cluster using the Web Console and the CLI. You will also monitor job progress, view job details and view the results of jobs.

+ +

What you learn

+ +

In this lab, you:

+
  • Create a Cloud Storage bucket to store job input, output and application files
  • +
  • Submit jobs using the Web Console
  • +
  • Submit jobs using the CLI
  • +
  • Monitor job progress and view results
  • +
+

Introduction

+ +

Duration is 1 min

+ +

Jobs can be submitted easily using the Web console and you can easily view job status and results in the console as well.

+ +

You can also submit jobs programmatically using the CLI. This would be likely in a real-world scenario where you were trying to automate big-data processing jobs.

+ +

Let's take a look at how this works.

+ +

Creating a Dataproc Cluster

+ +

Duration is 5 min

+ +

You will create a cluster and also create a storage bucket that will hold some files that you will use to submit jobs.

+ +

Step 1

+ +

In Google Cloud Shell, enter the following command to create a cluster:

+
gcloud dataproc clusters create my-cluster --zone us-central1-a \
+        --master-machine-type n1-standard-1 --master-boot-disk-size 50 \
+        --num-workers 2 --worker-machine-type n1-standard-1 \
+        --worker-boot-disk-size 50 --network=default
+
+

Step 2

+ +

If you skipped the previous lab, open __Google Cloud Shell __and enter the commands below to create a bucket and copy some pre-created files into your bucket (make sure to plug in your bucket name).

+
gsutil mb -c regional -l us-central1 gs://$DEVSHELL_PROJECT_ID
+
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
+cd training-data-analyst/courses/unstructured
+./replace_and_upload.sh <YOUR-BUCKET-NAME>
+
+

Submitting PySpark Jobs

+ +

Duration is 10 min

+ +

In previous lab, you ran code after logging into the cluster. In the case of Pig, you copied data over to the cluster's HDFS before you ran it. In this section, you will submit a Spark job and view its results without copying anything (code or data) to the cluster.

+ +

Step 1

+ +

In the Cloud Console, navigate to Storage and click on your bucket. It should have some files in the unstructured folder. Click on the file, lab2-input.txt and view its contents. This file contains a comma separated list of keys and values.

+ +

Also view the contents of the file, lab2.py. This is a PySpark job that organizes the input file by key and the total number for each type of pet. Notice that both the code and data are on Cloud Storage. We have not copied either of these to the cluster.

+ +

Step 2

+ +

Navigate to the Dataproc service in the Web Console.

+ +

Step 3

+ +

In the left-hand navigation pane select Jobs. Then click the Submit job button.

+ +

Step 4

+ +

At this point you should have one cluster called my-cluster. Make sure it is selected in the Cluster dropdown.

+ +

In the Job type dropdown, select PySpark.

+ +

In the Main python file text box enter the path to the PySpark file lab2.py that is in your bucket. It should be in the form shown below, but replace with the name of your bucket .

+ +

+ +

Step 5

+ +

No other options are required, so click Submit button at the bottom of the form.

+ +

Step 6

+ +

Wait for the job to succeed and then click on the Job ID to see its details. Take a look at the job output to see the results.

+ +

Step 7

+ +

To run the job again click the Clone button and the top, then Submit the job a second time.

+ +

Step 8

+ +

To run the job using the CLI, go back to the Google Cloud Shell and paste in the following command. Don't forget to replace with the name of your bucket.

+
gcloud dataproc jobs submit pyspark \
+      --cluster my-cluster gs://<YOUR-BUCKET-NAME>/unstructured/lab2.py
+
+

Cleanup

+ +

Duration is 1 min

+ +

There's no need to keep any clusters.

+ +

Step 1

+ +

Navigate to the Dataproc service using the Web Console. Delete any clusters that you created in this exercise.

+ + + +

+

Stop here if you are done. Wait for instructions from the Instructor before going into the next section

+
+ +

PART 4: LEVERAGING GOOGLE CLOUD PLATFORM SERVICES

+ +

Overview

+ +

Duration is 1 min

+ +

In this lab, you will create a Dataproc cluster that includes Datalab and the Google Python Client API. You will then create iPython notebooks that integrate with BigQuery and storage and utilize Spark.

+ +

What you learn

+ +

In this lab, you:

+
  • Create a Dataproc cluster with an Initialization Action that installs Google Cloud Datalab
  • +
  • Run Jupyter Notebooks on the Dataproc cluster using Google Cloud Datalab
  • +
  • Create Python and PySpark jobs that utilize Google Cloud Storage, BigQuery and Spark.
  • +
+

Introduction

+ +

Duration is 1 min

+ +

Additional software can be added to Dataproc clusters, and clusters can be customized using initialization actions. Initialization actions are simply executables that are run when the cluster is being created.

+ +

You will use a pre-built initialization action to install Datalab and a custom one to install the Google Client Python API.

+ +

Datalab allows you to write interactive Python and PySpark notebooks that are useful in data analysis. You will create a couple of notebooks in this exercise that make use of our Dataproc cluster and also integrate with Google BigQuery and Google Cloud Storage.

+ +

Creating an Initialization Action

+ +

Duration is 10 min

+ +

You will create a custom initialization action to install a Python package.

+ +

Step 1

+ +

Open the Cloud Platform Console and navigate to your project.

+ +

Step 2

+ +

Open Cloud Shell, git clone the course repository, and upload the custom initialization script to GCS. Change the bucket name as necessary.

+
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
+cd training-data-analyst/courses/unstructured/
+bash replace_and_upload.sh <YOUR-BUCKET-NAME>
+
+

Step 3

+ +

View the custom initialization script. Change the bucket name as necessary.

+
gsutil cat gs://<YOUR-BUCKET-NAME>/unstructured/init-script.sh
+
+

What does this initialization action do on all nodes? What does it do only on the master node?

+ +
+ +

Creating a Dataproc Cluster with an Initialization Action

+ +

Duration is 10 min

+ +

You will create a cluster that will include two initialization actions: (1) a pre-built action from Google to install Datalab, and (2) a custom initialization action to install a Python package.

+ +

Step 1

+ +

Use the Products and Services menu to navigate to the Dataproc service. If you have any clusters currently running, you can delete them.

+ +

Step 2

+ +

Click the Create cluster button and set the following parameters.

+
  • Name your cluster my-cluster.
  • +
  • Select the zone us-central1-a.
  • +
  • In the Master node | Machine type drop-down select the first machine n1-standard1(1vCPU, 3.75GB memory).
  • +
  • In the Worker nodes | Machine type drop-down also select the first machine n1-standard1(1vCPU, 3.75GB memory).
  • +
  • Leave the number of worker nodes at the default of 2.
  • +
+

Click on the link shown below to expand more options.

+ +

94eced3341d083d2.png

+ +

Copy and paste the following script URL into the Initialization actions text box and press Enter. (This script installs Google Cloud Datalab on your cluster's master node.)

+
gs://dataproc-initialization-actions/datalab/datalab.sh
+
+

Copy and paste this second initialization action into the Initialization actions text box and press Enter. Change the bucket name appropriately. (This script installs the Google Python Client API on all the machines in the cluster and clones the course repository to the Master node, so that Datalab will have access to the notebooks that are in the repository.)

+
gs://<YOUR-BUCKET-NAME>/unstructured/init-script.sh
+
+

Check the Project access box as shown below to allow your cluster to access other Google Cloud Platform services..

+ +

1a1ca1c75bff15ad.png

+ +

Step 3

+ +

To create the cluster, either click the Create button or click on the Command line link and copy the command onto your clipboard and then run it from Google Cloud Shell.

+ +

Step 4

+ +

It will take a little longer for your cluster to be created this time, because the scripts have to run. While you are waiting, browse to the following github site where you will find many other initialization actions that have been written for you.

+ +

https://github.com/GoogleCloudPlatform/dataproc-initialization-actions

+ +

Note: Initialization actions are really just executables that run when a cluster is being creating. They are used to install additional software or customize your cluster as required by your programs. You can include one or more initialization actions when creating Dataproc clusters.

+
+ +

Step 5

+ +

If you did not create a firewall rule called in the previous section, please do so now. You will have to find your IP address using http://ip4.me/ and then go to the Networking section of the GCP console. Select VPC Network > Firewall rules. Click on the Create Firewall Rule button. Then, Enter the following:

+
  • Name the rule default-allow-dataproc-access.
  • +
  • For Targets, select "All instances in the network"
  • +
  • Select IP ranges from the Source filter dropdown.
  • +
  • In the source IP ranges text box enter your ip address followed by /32. So if your IP address is 1.2.3.4 then the text box would read 1.2.3.4/32.
  • +
  • For Protocols and ports, select "Specified Protocols and ports", and enter the following in the text box:
  • +
+

+ +

If you created the firewall rule in the previous lab, but you are connecting from a different network IP address, modify the firewall rule in the networking section to add your new IP address.

+ +

Step 6

+ +

When your cluster is finished initializing, click on its name to go to its details page, then click on the VM Instances tab, and finally click on the master node to view its details.

+ +

Scroll down and find the master node's external IP address and copy it to your clipboard.

+ +

Open a new browser tab, paste in this IP address and then add :8080 after the address. This opens Datalab. You will be redirected to the Datalab main screen as shown below:

+ +

2fca668442685519.png

+ +

Important: The reason you can browse to this port is because earlier you created a firewall rule that opened port 8080 to your machine. Be careful when opening this port. You would not want to create a rule that allowed everyone access to Datalab. If you did, then your cluster could be easily hacked.

+
+ +

Creating a Simple Datalab Notebook

+ +

Duration is 5 min

+ +

Let's just create a simple Python Notebook and make sure everything is working.

+ +

Step 1

+ +

On the left side of the Datalab home page click the + Notebook button.

+ +

Step 2

+ +

In the first cell, just enter the following Python code.

+
temp = 212.0
+
+def toCelsius(fahrenheit):
+    return (fahrenheit - 32) * 5.0 / 9.0
+
+print toCelsius(temp)
+
+

Step 3

+ +

Click the Run button in the toolbar and examine the results. It should look as shown below. (It might take a little while for the notebook to start.)

+ +

f34b5b10f532c60d.png

+ +

Running a BigQuery Query

+ +

Duration is 10 min

+ +

The Python package Pandas comes with support to run BigQuery queries.

+ +

Step 1

+ +

In the second code block add the following code and click Run. These import statements will allow you to run a BigQuery query.

+
import pandas as pd
+from pandas.io import gbq
+
+print "Imports run."
+
+

Step 2

+ +

In the next code block, add the following code changing the projectId variable to your project id.

+ +

(You can find your project id in the Google Cloud Platform Web Console. Select Home from the Cloud Console menu.)

+
projectId = "YOUR-PROJECT-ID-HERE" # CHANGE
+sql = """
+SELECT
+  year,
+  AVG(weight_pounds) AS avg_weight
+FROM
+  publicdata.samples.natality
+GROUP BY
+  year
+ORDER BY
+  year ASC
+"""
+
+print 'Running query...'
+data = gbq.read_gbq(sql, project_id=projectId)
+
+data[:5]
+
+

Click the Run button. The BigQuery query is run and the results put into a Pandas DataFrame. The last line just outputs the first 5 records. The results are shown below

+ +

5fc020bee71d39f7.png

+ +

Step 3

+ +

In the next code block, add the following code to plot a graph using Pandas

+
data.plot(x='year', y='avg_weight');
+
+

You should get a graph that looks like this:

+ +

77fb532d406a0b90.png

+ +

Step 4

+ +

In the Datalab menu bar, select Notebook | Rename. Name the notebook BigQuery-Test and then click OK. You can then close that tab and return to the Datalab Home page.

+ +

Step 5

+ +

Back at the Datalab home page in the upper right corner of the toolbar are 4 icons. Hover over the second one (the one that looks like a stack of progress bars) and the resulting tooltip should read Running Sessions. Click on that icon.

+ +

cb862110c67c1877.png

+ +

On the resulting page you should see one active notebook, the BigQuery-Test notebook you just created.

+ +

Click the Shutdown button on the right side and then close this tab.

+ +

Using PySpark in a Datalab Notebook

+ +

Duration is 10 min

+ +

The last notebook didn't run anything in parallel on your Dataproc cluster. This time, let's get a notebook from the GitHub repository and execute it. This notebook uses PySpark and makes use of your Spark cluster.

+ +

Step 1

+ +

Back at the Datalab home page in the upper right corner of the toolbar are 4 icons. Hover over the first one (the one that looks like a fork in the road) and the resulting tooltip should read Open ungit. Click on that icon.

+ +

cb862110c67c1877.png

+ +

Step 2

+ +

Fill out the form to clone the github repository corresponding to the course:

+
https://github.com/GoogleCloudPlatform/training-data-analyst
+
+

e6314216113096f8.png

+ +

Then click on Clone repository

+ +

Step 3

+ +

Back on the Datalab home page click the Home icon and navigate to datalab/notebooks/training-data-analyst/courses/unstructured. Click on PySpark-Test-Solution.ipynb to open that notebook.

+ +

Step 4

+ +

In the notebook, Click on Clear | All Cells. Now, execute each cell in turn, making sure to change any occurrences of BUCKET_NAME to be the name of your bucket.

+ +

Step 5

+ +

You will want to stop this notebook as you did the previous one. Click the Running Sessions link on the right side of the toolbar. Then, click the Shutdown button to the left of the PySpark-Test-Solution notebook.

+ +

Close this tab and return to the Datalab home page.

+ + + +

+

Stop here if you are done. Wait for instructions from the Instructor before going into the next section

+
+ +

PART 5: ADDING MACHINE LEARNING TO BIG DATA ANALYSIS

+ +

Overview

+ +

Duration is 2 min

+ +

In this lab, you integrate the machine learning APIs into your data analysis. You will write the code to use the Speech, Vision, Translate and Natural Language APIs. You will see how to execute these APIs on your Spark clusters. You will also integrate these services with BigQuery and Storage.

+ +

What you learn

+ +

In this lab, you: ...

+
  • Enable the Google Cloud Platform machine learning APIs
  • +
  • Find specific text in a corpus of scanned documents
  • +
  • Translate a book from English to Spanish using the Translate API
  • +
  • Perform sentiment analysis on text resulting from a BigQuery query
  • +
+

Introduction

+ +

Duration is 5 min

+ +

Google's machine learning APIs add amazing new capabilities to big data processing. Using these APIs you can have the computer analyze images, transcribe audio, translate text into other languages and many other things.

+ +

Google Cloud Dataproc enables you to build clusters of many computers that enable you to perform these operations quickly, efficiently and at reasonable cost.

+ +

In this lab, you will create a Datalab notebook that demonstrates running the machine learning APIs on Dataproc clusters using Spark.

+ +

Opening Datalab Notebook

+ +

Duration is 5 min

+ +

In order to complete this lab you have to have done the previous lab.

+ +

Step 1

+ +

In your browser, navigate to Datalab by pasting the ip address of the cluster master node and then follow it with :8080. On the Datalab home page click the Home icon and navigate to . Click on ML-Tests-Solution.ipynb to open that notebook.

+ +

Step 2

+ +

Click Clear | Clear All Cells.

+ +

In the first code block, notice that you need an API key. Let's get one.

+
APIKEY="ENTER API KEY HERE"  # CHANGE
+print APIKEY
+
+

Enabling Machine Learning APIs

+ +

Duration is 10 min

+ +

Step 1

+ +

You have to generate an API key to use the machine learning APIs. In the Google Cloud Platform Web Console, from the Products and Services menu, choose APIs & services.

+ +

In the navigation pane on the left select Credentials. Then, click the Create credentials button and select API key. Copy the generated key to your clipboard and then click the Close button.

+ +

Step 2

+ +

Go back to your Datalab notebook and paste the API key you just generated over the text ENTER API KEY HERE.

+ +

Step 3

+ +

Go back to the Web Console to the APIs & services page. Click on the Library link in the navigation pane. In the Search box type Speech. Then, click on the link to the Google Cloud Speech API. Click the __Enable __button on the resulting screen (if not already enabled).

+ +

Step 4

+ +

Go back to the Library page and type Translate in the search page. As you did with the Speech API, enable the Translation API (if not already enabled).

+ +

Step 5

+ +

Repeat this process enabling the Vision and Language APIs.

+ +

Vision, Transate and NLP on the Spark cluster

+ +

Duration is 20 min

+ +

Step 1

+ +

Go back to your Datalab notebook and plugin the appropriate PROJECT_ID and BUCKET names. Then, read the narrative and execute each cell in turn.

+ +

Testing Large Data Sets

+ +

Duration is 5 min

+ +

Step 1

+ +

Find the block of code that reads in Alice in Wonderland. Change the filename to alice-in-wonderland-transformed.txt. This will read the entire book.

+ +

Step 2

+ +

In the BigQuery query, change the limit from 10 to 1000.

+ +

Step 3

+ +

Click the drop-down next to the Run button and select Run all cells.

+ +

Step 4

+ +

It will take a little while to run. Examine the results and the code. Experiment with the code if you like.

+ +

Step 5

+ +

Click on the Notebook menu and select Save and Checkpoint. Then you can close the tab with this notebook.

+ +

Cleaning Up

+ +

Duration is 5 min

+ +

Step 1

+ +

If you would like to, you can download the iPython notebooks you created for later reference. (The starting notebooks are already in GitHub -- this is only if you wish to save your changes.) Open each notebook and from the Notebook menu select Download.

+ +

Step 2

+ +

Close all the Datalab tabs and return to the Google Cloud Platform Web Console. Use the Products and Services menu to return to the Dataproc service.

+ +

Delete any clusters you have created.

+ +

Provide Feedback on this Lab

+ +
+ + + +
+
+ +
+
+× +
+
+
+
+ +
+ +
+
+ +
+ + + + + + + + + +
+
+ + +
+ + + + + + + + + \ No newline at end of file diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/1a1ca1c75bff15ad.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/1a1ca1c75bff15ad.png new file mode 100755 index 0000000..30b55db Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/1a1ca1c75bff15ad.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/1c492727805af169.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/1c492727805af169.png new file mode 100755 index 0000000..a1b4206 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/1c492727805af169.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/2fa0ccada9d929f0.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/2fa0ccada9d929f0.png new file mode 100755 index 0000000..ae3cae9 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/2fa0ccada9d929f0.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/2fca668442685519.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/2fca668442685519.png new file mode 100755 index 0000000..6748ff5 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/2fca668442685519.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/32331ec60c5f6609.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/32331ec60c5f6609.png new file mode 100755 index 0000000..ba7b0d7 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/32331ec60c5f6609.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/3ac518b975e3eb26.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/3ac518b975e3eb26.png new file mode 100755 index 0000000..03b4200 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/3ac518b975e3eb26.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/3d2672578e8efc6e.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/3d2672578e8efc6e.png new file mode 100755 index 0000000..dcaeb4a Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/3d2672578e8efc6e.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/4cf8b1cc09c73465.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/4cf8b1cc09c73465.png new file mode 100755 index 0000000..8d6b231 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/4cf8b1cc09c73465.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/5fc020bee71d39f7.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/5fc020bee71d39f7.png new file mode 100755 index 0000000..a867606 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/5fc020bee71d39f7.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/77fb532d406a0b90.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/77fb532d406a0b90.png new file mode 100755 index 0000000..c038c72 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/77fb532d406a0b90.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/7e8f56804afdc372.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/7e8f56804afdc372.png new file mode 100755 index 0000000..d66e745 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/7e8f56804afdc372.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/849103afbf5e9178.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/849103afbf5e9178.png new file mode 100755 index 0000000..9e29914 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/849103afbf5e9178.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/8b7a99b7a9f13fec.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/8b7a99b7a9f13fec.png new file mode 100755 index 0000000..b57b4da Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/8b7a99b7a9f13fec.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/94eced3341d083d2.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/94eced3341d083d2.png new file mode 100755 index 0000000..a506520 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/94eced3341d083d2.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/a1b4bfec239cc863.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/a1b4bfec239cc863.png new file mode 100755 index 0000000..0559876 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/a1b4bfec239cc863.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/a835b0e3b23a9e319e795e2bf1bccaa8.png b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/a835b0e3b23a9e319e795e2bf1bccaa8.png new file mode 100755 index 0000000..0356f91 Binary files /dev/null and b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/a835b0e3b23a9e319e795e2bf1bccaa8.png differ diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/application-6460790cbdd89c50da4755d15c7ef68fa373dd59daad1528c39815f8c2c4676d.css b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/application-6460790cbdd89c50da4755d15c7ef68fa373dd59daad1528c39815f8c2c4676d.css new file mode 100755 index 0000000..dde097f --- /dev/null +++ b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/application-6460790cbdd89c50da4755d15c7ef68fa373dd59daad1528c39815f8c2c4676d.css @@ -0,0 +1,8 @@ +html{color:rgba(0,0,0,0.87)}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.browserupgrade{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.hidden{display:none !important}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}@media print{*,*:before,*:after,*:first-letter{background:transparent !important;color:#000 !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}a,.mdl-accordion,.mdl-button,.mdl-card,.mdl-checkbox,.mdl-dropdown-menu,.mdl-icon-toggle,.mdl-item,.mdl-radio,.mdl-slider,.mdl-switch,.mdl-tabs__tab{-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:rgba(255,255,255,0)}html{width:100%;height:100%;-ms-touch-action:manipulation;touch-action:manipulation}body{width:100%;min-height:100%}main{display:block}*[hidden]{display:none !important}html,body{font-family:"Helvetica","Arial",sans-serif;font-size:14px;font-weight:400;line-height:20px}h1,h2,h3,h4,h5,h6,p{padding:0}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-family:"Roboto","Helvetica","Arial",sans-serif;font-weight:400;line-height:1.35;letter-spacing:-.02em;opacity:.54;font-size:.6em}h1{font-size:56px;line-height:1.35;letter-spacing:-.02em;margin:24px 0}h1,h2{font-family:"Roboto","Helvetica","Arial",sans-serif;font-weight:400}h2{font-size:45px;line-height:48px}h2,h3{margin:24px 0}h3{font-size:34px;line-height:40px}h3,h4{font-family:"Roboto","Helvetica","Arial",sans-serif;font-weight:400}h4{font-size:24px;line-height:32px;-moz-osx-font-smoothing:grayscale;margin:24px 0 16px}h5{font-size:20px;font-weight:500;line-height:1;letter-spacing:.02em}h5,h6{font-family:"Roboto","Helvetica","Arial",sans-serif;margin:24px 0 16px}h6{font-size:16px;letter-spacing:.04em}h6,p{font-weight:400;line-height:24px}p{font-size:14px;letter-spacing:0;margin:0 0 16px}a{color:#ffd740;font-weight:500}blockquote{font-family:"Roboto","Helvetica","Arial",sans-serif;position:relative;font-size:24px;font-weight:300;font-style:italic;line-height:1.35;letter-spacing:.08em}blockquote:before{position:absolute;left:-.5em;content:'“'}blockquote:after{content:'”';margin-left:-.05em}mark{background-color:#f4ff81}dt{font-weight:700}address{font-size:12px;line-height:1;font-style:normal}address,ul,ol{font-weight:400;letter-spacing:0}ul,ol{font-size:14px;line-height:24px}.mdl-typography--display-4,.mdl-typography--display-4-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:112px;font-weight:300;line-height:1;letter-spacing:-.04em}.mdl-typography--display-4-color-contrast{opacity:.54}.mdl-typography--display-3,.mdl-typography--display-3-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:56px;font-weight:400;line-height:1.35;letter-spacing:-.02em}.mdl-typography--display-3-color-contrast{opacity:.54}.mdl-typography--display-2,.mdl-typography--display-2-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:45px;font-weight:400;line-height:48px}.mdl-typography--display-2-color-contrast{opacity:.54}.mdl-typography--display-1,.mdl-typography--display-1-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:34px;font-weight:400;line-height:40px}.mdl-typography--display-1-color-contrast{opacity:.54}.mdl-typography--headline,.mdl-typography--headline-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:24px;font-weight:400;line-height:32px;-moz-osx-font-smoothing:grayscale}.mdl-typography--headline-color-contrast{opacity:.87}.mdl-typography--title,.mdl-typography--title-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:20px;font-weight:500;line-height:1;letter-spacing:.02em}.mdl-typography--title-color-contrast{opacity:.87}.mdl-typography--subhead,.mdl-typography--subhead-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:.04em}.mdl-typography--subhead-color-contrast{opacity:.87}.mdl-typography--body-2,.mdl-typography--body-2-color-contrast{font-size:14px;font-weight:700;line-height:24px;letter-spacing:0}.mdl-typography--body-2-color-contrast{opacity:.87}.mdl-typography--body-1,.mdl-typography--body-1-color-contrast{font-size:14px;font-weight:400;line-height:24px;letter-spacing:0}.mdl-typography--body-1-color-contrast{opacity:.87}.mdl-typography--body-2-force-preferred-font,.mdl-typography--body-2-force-preferred-font-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:14px;font-weight:500;line-height:24px;letter-spacing:0}.mdl-typography--body-2-force-preferred-font-color-contrast{opacity:.87}.mdl-typography--body-1-force-preferred-font,.mdl-typography--body-1-force-preferred-font-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:14px;font-weight:400;line-height:24px;letter-spacing:0}.mdl-typography--body-1-force-preferred-font-color-contrast{opacity:.87}.mdl-typography--caption,.mdl-typography--caption-force-preferred-font{font-size:12px;font-weight:400;line-height:1;letter-spacing:0}.mdl-typography--caption-force-preferred-font{font-family:"Roboto","Helvetica","Arial",sans-serif}.mdl-typography--caption-color-contrast,.mdl-typography--caption-force-preferred-font-color-contrast{font-size:12px;font-weight:400;line-height:1;letter-spacing:0;opacity:.54}.mdl-typography--caption-force-preferred-font-color-contrast,.mdl-typography--menu{font-family:"Roboto","Helvetica","Arial",sans-serif}.mdl-typography--menu{font-size:14px;font-weight:500;line-height:1;letter-spacing:0}.mdl-typography--menu-color-contrast{opacity:.87}.mdl-typography--menu-color-contrast,.mdl-typography--button,.mdl-typography--button-color-contrast{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:14px;font-weight:500;line-height:1;letter-spacing:0}.mdl-typography--button,.mdl-typography--button-color-contrast{text-transform:uppercase}.mdl-typography--button-color-contrast{opacity:.87}.mdl-typography--text-left{text-align:left}.mdl-typography--text-right{text-align:right}.mdl-typography--text-center{text-align:center}.mdl-typography--text-justify{text-align:justify}.mdl-typography--text-nowrap{white-space:nowrap}.mdl-typography--text-lowercase{text-transform:lowercase}.mdl-typography--text-uppercase{text-transform:uppercase}.mdl-typography--text-capitalize{text-transform:capitalize}.mdl-typography--font-thin{font-weight:200 !important}.mdl-typography--font-light{font-weight:300 !important}.mdl-typography--font-regular{font-weight:400 !important}.mdl-typography--font-medium{font-weight:500 !important}.mdl-typography--font-bold{font-weight:700 !important}.mdl-typography--font-black{font-weight:900 !important}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;word-wrap:normal;font-feature-settings:'liga';-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased}.mdl-color-text--red{color:#f44336 !important}.mdl-color--red{background-color:#f44336 !important}.mdl-color-text--red-50{color:#ffebee !important}.mdl-color--red-50{background-color:#ffebee !important}.mdl-color-text--red-100{color:#ffcdd2 !important}.mdl-color--red-100{background-color:#ffcdd2 !important}.mdl-color-text--red-200{color:#ef9a9a !important}.mdl-color--red-200{background-color:#ef9a9a !important}.mdl-color-text--red-300{color:#e57373 !important}.mdl-color--red-300{background-color:#e57373 !important}.mdl-color-text--red-400{color:#ef5350 !important}.mdl-color--red-400{background-color:#ef5350 !important}.mdl-color-text--red-500{color:#f44336 !important}.mdl-color--red-500{background-color:#f44336 !important}.mdl-color-text--red-600{color:#e53935 !important}.mdl-color--red-600{background-color:#e53935 !important}.mdl-color-text--red-700{color:#d32f2f !important}.mdl-color--red-700{background-color:#d32f2f !important}.mdl-color-text--red-800{color:#c62828 !important}.mdl-color--red-800{background-color:#c62828 !important}.mdl-color-text--red-900{color:#b71c1c !important}.mdl-color--red-900{background-color:#b71c1c !important}.mdl-color-text--red-A100{color:#ff8a80 !important}.mdl-color--red-A100{background-color:#ff8a80 !important}.mdl-color-text--red-A200{color:#ff5252 !important}.mdl-color--red-A200{background-color:#ff5252 !important}.mdl-color-text--red-A400{color:#ff1744 !important}.mdl-color--red-A400{background-color:#ff1744 !important}.mdl-color-text--red-A700{color:#d50000 !important}.mdl-color--red-A700{background-color:#d50000 !important}.mdl-color-text--pink{color:#e91e63 !important}.mdl-color--pink{background-color:#e91e63 !important}.mdl-color-text--pink-50{color:#fce4ec !important}.mdl-color--pink-50{background-color:#fce4ec !important}.mdl-color-text--pink-100{color:#f8bbd0 !important}.mdl-color--pink-100{background-color:#f8bbd0 !important}.mdl-color-text--pink-200{color:#f48fb1 !important}.mdl-color--pink-200{background-color:#f48fb1 !important}.mdl-color-text--pink-300{color:#f06292 !important}.mdl-color--pink-300{background-color:#f06292 !important}.mdl-color-text--pink-400{color:#ec407a !important}.mdl-color--pink-400{background-color:#ec407a !important}.mdl-color-text--pink-500{color:#e91e63 !important}.mdl-color--pink-500{background-color:#e91e63 !important}.mdl-color-text--pink-600{color:#d81b60 !important}.mdl-color--pink-600{background-color:#d81b60 !important}.mdl-color-text--pink-700{color:#c2185b !important}.mdl-color--pink-700{background-color:#c2185b !important}.mdl-color-text--pink-800{color:#ad1457 !important}.mdl-color--pink-800{background-color:#ad1457 !important}.mdl-color-text--pink-900{color:#880e4f !important}.mdl-color--pink-900{background-color:#880e4f !important}.mdl-color-text--pink-A100{color:#ff80ab !important}.mdl-color--pink-A100{background-color:#ff80ab !important}.mdl-color-text--pink-A200{color:#ff4081 !important}.mdl-color--pink-A200{background-color:#ff4081 !important}.mdl-color-text--pink-A400{color:#f50057 !important}.mdl-color--pink-A400{background-color:#f50057 !important}.mdl-color-text--pink-A700{color:#c51162 !important}.mdl-color--pink-A700{background-color:#c51162 !important}.mdl-color-text--purple{color:#9c27b0 !important}.mdl-color--purple{background-color:#9c27b0 !important}.mdl-color-text--purple-50{color:#f3e5f5 !important}.mdl-color--purple-50{background-color:#f3e5f5 !important}.mdl-color-text--purple-100{color:#e1bee7 !important}.mdl-color--purple-100{background-color:#e1bee7 !important}.mdl-color-text--purple-200{color:#ce93d8 !important}.mdl-color--purple-200{background-color:#ce93d8 !important}.mdl-color-text--purple-300{color:#ba68c8 !important}.mdl-color--purple-300{background-color:#ba68c8 !important}.mdl-color-text--purple-400{color:#ab47bc !important}.mdl-color--purple-400{background-color:#ab47bc !important}.mdl-color-text--purple-500{color:#9c27b0 !important}.mdl-color--purple-500{background-color:#9c27b0 !important}.mdl-color-text--purple-600{color:#8e24aa !important}.mdl-color--purple-600{background-color:#8e24aa !important}.mdl-color-text--purple-700{color:#7b1fa2 !important}.mdl-color--purple-700{background-color:#7b1fa2 !important}.mdl-color-text--purple-800{color:#6a1b9a !important}.mdl-color--purple-800{background-color:#6a1b9a !important}.mdl-color-text--purple-900{color:#4a148c !important}.mdl-color--purple-900{background-color:#4a148c !important}.mdl-color-text--purple-A100{color:#ea80fc !important}.mdl-color--purple-A100{background-color:#ea80fc !important}.mdl-color-text--purple-A200{color:#e040fb !important}.mdl-color--purple-A200{background-color:#e040fb !important}.mdl-color-text--purple-A400{color:#d500f9 !important}.mdl-color--purple-A400{background-color:#d500f9 !important}.mdl-color-text--purple-A700{color:#a0f !important}.mdl-color--purple-A700{background-color:#a0f !important}.mdl-color-text--deep-purple{color:#673ab7 !important}.mdl-color--deep-purple{background-color:#673ab7 !important}.mdl-color-text--deep-purple-50{color:#ede7f6 !important}.mdl-color--deep-purple-50{background-color:#ede7f6 !important}.mdl-color-text--deep-purple-100{color:#d1c4e9 !important}.mdl-color--deep-purple-100{background-color:#d1c4e9 !important}.mdl-color-text--deep-purple-200{color:#b39ddb !important}.mdl-color--deep-purple-200{background-color:#b39ddb !important}.mdl-color-text--deep-purple-300{color:#9575cd !important}.mdl-color--deep-purple-300{background-color:#9575cd !important}.mdl-color-text--deep-purple-400{color:#7e57c2 !important}.mdl-color--deep-purple-400{background-color:#7e57c2 !important}.mdl-color-text--deep-purple-500{color:#673ab7 !important}.mdl-color--deep-purple-500{background-color:#673ab7 !important}.mdl-color-text--deep-purple-600{color:#5e35b1 !important}.mdl-color--deep-purple-600{background-color:#5e35b1 !important}.mdl-color-text--deep-purple-700{color:#512da8 !important}.mdl-color--deep-purple-700{background-color:#512da8 !important}.mdl-color-text--deep-purple-800{color:#4527a0 !important}.mdl-color--deep-purple-800{background-color:#4527a0 !important}.mdl-color-text--deep-purple-900{color:#311b92 !important}.mdl-color--deep-purple-900{background-color:#311b92 !important}.mdl-color-text--deep-purple-A100{color:#b388ff !important}.mdl-color--deep-purple-A100{background-color:#b388ff !important}.mdl-color-text--deep-purple-A200{color:#7c4dff !important}.mdl-color--deep-purple-A200{background-color:#7c4dff !important}.mdl-color-text--deep-purple-A400{color:#651fff !important}.mdl-color--deep-purple-A400{background-color:#651fff !important}.mdl-color-text--deep-purple-A700{color:#6200ea !important}.mdl-color--deep-purple-A700{background-color:#6200ea !important}.mdl-color-text--indigo{color:#3f51b5 !important}.mdl-color--indigo{background-color:#3f51b5 !important}.mdl-color-text--indigo-50{color:#e8eaf6 !important}.mdl-color--indigo-50{background-color:#e8eaf6 !important}.mdl-color-text--indigo-100{color:#c5cae9 !important}.mdl-color--indigo-100{background-color:#c5cae9 !important}.mdl-color-text--indigo-200{color:#9fa8da !important}.mdl-color--indigo-200{background-color:#9fa8da !important}.mdl-color-text--indigo-300{color:#7986cb !important}.mdl-color--indigo-300{background-color:#7986cb !important}.mdl-color-text--indigo-400{color:#5c6bc0 !important}.mdl-color--indigo-400{background-color:#5c6bc0 !important}.mdl-color-text--indigo-500{color:#3f51b5 !important}.mdl-color--indigo-500{background-color:#3f51b5 !important}.mdl-color-text--indigo-600{color:#3949ab !important}.mdl-color--indigo-600{background-color:#3949ab !important}.mdl-color-text--indigo-700{color:#303f9f !important}.mdl-color--indigo-700{background-color:#303f9f !important}.mdl-color-text--indigo-800{color:#283593 !important}.mdl-color--indigo-800{background-color:#283593 !important}.mdl-color-text--indigo-900{color:#1a237e !important}.mdl-color--indigo-900{background-color:#1a237e !important}.mdl-color-text--indigo-A100{color:#8c9eff !important}.mdl-color--indigo-A100{background-color:#8c9eff !important}.mdl-color-text--indigo-A200{color:#536dfe !important}.mdl-color--indigo-A200{background-color:#536dfe !important}.mdl-color-text--indigo-A400{color:#3d5afe !important}.mdl-color--indigo-A400{background-color:#3d5afe !important}.mdl-color-text--indigo-A700{color:#304ffe !important}.mdl-color--indigo-A700{background-color:#304ffe !important}.mdl-color-text--blue{color:#2196f3 !important}.mdl-color--blue{background-color:#2196f3 !important}.mdl-color-text--blue-50{color:#e3f2fd !important}.mdl-color--blue-50{background-color:#e3f2fd !important}.mdl-color-text--blue-100{color:#bbdefb !important}.mdl-color--blue-100{background-color:#bbdefb !important}.mdl-color-text--blue-200{color:#90caf9 !important}.mdl-color--blue-200{background-color:#90caf9 !important}.mdl-color-text--blue-300{color:#64b5f6 !important}.mdl-color--blue-300{background-color:#64b5f6 !important}.mdl-color-text--blue-400{color:#42a5f5 !important}.mdl-color--blue-400{background-color:#42a5f5 !important}.mdl-color-text--blue-500{color:#2196f3 !important}.mdl-color--blue-500{background-color:#2196f3 !important}.mdl-color-text--blue-600{color:#1e88e5 !important}.mdl-color--blue-600{background-color:#1e88e5 !important}.mdl-color-text--blue-700{color:#1976d2 !important}.mdl-color--blue-700{background-color:#1976d2 !important}.mdl-color-text--blue-800{color:#1565c0 !important}.mdl-color--blue-800{background-color:#1565c0 !important}.mdl-color-text--blue-900{color:#0d47a1 !important}.mdl-color--blue-900{background-color:#0d47a1 !important}.mdl-color-text--blue-A100{color:#82b1ff !important}.mdl-color--blue-A100{background-color:#82b1ff !important}.mdl-color-text--blue-A200{color:#4285F4 !important}.mdl-color--blue-A200{background-color:#4285F4 !important}.mdl-color-text--blue-A400{color:#2979ff !important}.mdl-color--blue-A400{background-color:#2979ff !important}.mdl-color-text--blue-A700{color:#2962ff !important}.mdl-color--blue-A700{background-color:#2962ff !important}.mdl-color-text--light-blue{color:#03a9f4 !important}.mdl-color--light-blue{background-color:#03a9f4 !important}.mdl-color-text--light-blue-50{color:#e1f5fe !important}.mdl-color--light-blue-50{background-color:#e1f5fe !important}.mdl-color-text--light-blue-100{color:#b3e5fc !important}.mdl-color--light-blue-100{background-color:#b3e5fc !important}.mdl-color-text--light-blue-200{color:#81d4fa !important}.mdl-color--light-blue-200{background-color:#81d4fa !important}.mdl-color-text--light-blue-300{color:#4fc3f7 !important}.mdl-color--light-blue-300{background-color:#4fc3f7 !important}.mdl-color-text--light-blue-400{color:#29b6f6 !important}.mdl-color--light-blue-400{background-color:#29b6f6 !important}.mdl-color-text--light-blue-500{color:#03a9f4 !important}.mdl-color--light-blue-500{background-color:#03a9f4 !important}.mdl-color-text--light-blue-600{color:#039be5 !important}.mdl-color--light-blue-600{background-color:#039be5 !important}.mdl-color-text--light-blue-700{color:#0288d1 !important}.mdl-color--light-blue-700{background-color:#0288d1 !important}.mdl-color-text--light-blue-800{color:#0277bd !important}.mdl-color--light-blue-800{background-color:#0277bd !important}.mdl-color-text--light-blue-900{color:#01579b !important}.mdl-color--light-blue-900{background-color:#01579b !important}.mdl-color-text--light-blue-A100{color:#80d8ff !important}.mdl-color--light-blue-A100{background-color:#80d8ff !important}.mdl-color-text--light-blue-A200{color:#40c4ff !important}.mdl-color--light-blue-A200{background-color:#40c4ff !important}.mdl-color-text--light-blue-A400{color:#00b0ff !important}.mdl-color--light-blue-A400{background-color:#00b0ff !important}.mdl-color-text--light-blue-A700{color:#0091ea !important}.mdl-color--light-blue-A700{background-color:#0091ea !important}.mdl-color-text--cyan{color:#00bcd4 !important}.mdl-color--cyan{background-color:#00bcd4 !important}.mdl-color-text--cyan-50{color:#e0f7fa !important}.mdl-color--cyan-50{background-color:#e0f7fa !important}.mdl-color-text--cyan-100{color:#b2ebf2 !important}.mdl-color--cyan-100{background-color:#b2ebf2 !important}.mdl-color-text--cyan-200{color:#80deea !important}.mdl-color--cyan-200{background-color:#80deea !important}.mdl-color-text--cyan-300{color:#4dd0e1 !important}.mdl-color--cyan-300{background-color:#4dd0e1 !important}.mdl-color-text--cyan-400{color:#26c6da !important}.mdl-color--cyan-400{background-color:#26c6da !important}.mdl-color-text--cyan-500{color:#00bcd4 !important}.mdl-color--cyan-500{background-color:#00bcd4 !important}.mdl-color-text--cyan-600{color:#00acc1 !important}.mdl-color--cyan-600{background-color:#00acc1 !important}.mdl-color-text--cyan-700{color:#0097a7 !important}.mdl-color--cyan-700{background-color:#0097a7 !important}.mdl-color-text--cyan-800{color:#00838f !important}.mdl-color--cyan-800{background-color:#00838f !important}.mdl-color-text--cyan-900{color:#006064 !important}.mdl-color--cyan-900{background-color:#006064 !important}.mdl-color-text--cyan-A100{color:#84ffff !important}.mdl-color--cyan-A100{background-color:#84ffff !important}.mdl-color-text--cyan-A200{color:#18ffff !important}.mdl-color--cyan-A200{background-color:#18ffff !important}.mdl-color-text--cyan-A400{color:#00e5ff !important}.mdl-color--cyan-A400{background-color:#00e5ff !important}.mdl-color-text--cyan-A700{color:#00b8d4 !important}.mdl-color--cyan-A700{background-color:#00b8d4 !important}.mdl-color-text--teal{color:#009688 !important}.mdl-color--teal{background-color:#009688 !important}.mdl-color-text--teal-50{color:#e0f2f1 !important}.mdl-color--teal-50{background-color:#e0f2f1 !important}.mdl-color-text--teal-100{color:#b2dfdb !important}.mdl-color--teal-100{background-color:#b2dfdb !important}.mdl-color-text--teal-200{color:#80cbc4 !important}.mdl-color--teal-200{background-color:#80cbc4 !important}.mdl-color-text--teal-300{color:#4db6ac !important}.mdl-color--teal-300{background-color:#4db6ac !important}.mdl-color-text--teal-400{color:#26a69a !important}.mdl-color--teal-400{background-color:#26a69a !important}.mdl-color-text--teal-500{color:#009688 !important}.mdl-color--teal-500{background-color:#009688 !important}.mdl-color-text--teal-600{color:#00897b !important}.mdl-color--teal-600{background-color:#00897b !important}.mdl-color-text--teal-700{color:#00796b !important}.mdl-color--teal-700{background-color:#00796b !important}.mdl-color-text--teal-800{color:#00695c !important}.mdl-color--teal-800{background-color:#00695c !important}.mdl-color-text--teal-900{color:#004d40 !important}.mdl-color--teal-900{background-color:#004d40 !important}.mdl-color-text--teal-A100{color:#a7ffeb !important}.mdl-color--teal-A100{background-color:#a7ffeb !important}.mdl-color-text--teal-A200{color:#64ffda !important}.mdl-color--teal-A200{background-color:#64ffda !important}.mdl-color-text--teal-A400{color:#1de9b6 !important}.mdl-color--teal-A400{background-color:#1de9b6 !important}.mdl-color-text--teal-A700{color:#00bfa5 !important}.mdl-color--teal-A700{background-color:#00bfa5 !important}.mdl-color-text--green{color:#4caf50 !important}.mdl-color--green{background-color:#4caf50 !important}.mdl-color-text--green-50{color:#e8f5e9 !important}.mdl-color--green-50{background-color:#e8f5e9 !important}.mdl-color-text--green-100{color:#c8e6c9 !important}.mdl-color--green-100{background-color:#c8e6c9 !important}.mdl-color-text--green-200{color:#a5d6a7 !important}.mdl-color--green-200{background-color:#a5d6a7 !important}.mdl-color-text--green-300{color:#81c784 !important}.mdl-color--green-300{background-color:#81c784 !important}.mdl-color-text--green-400{color:#66bb6a !important}.mdl-color--green-400{background-color:#66bb6a !important}.mdl-color-text--green-500{color:#4caf50 !important}.mdl-color--green-500{background-color:#4caf50 !important}.mdl-color-text--green-600{color:#43a047 !important}.mdl-color--green-600{background-color:#43a047 !important}.mdl-color-text--green-700{color:#388e3c !important}.mdl-color--green-700{background-color:#388e3c !important}.mdl-color-text--green-800{color:#2e7d32 !important}.mdl-color--green-800{background-color:#2e7d32 !important}.mdl-color-text--green-900{color:#1b5e20 !important}.mdl-color--green-900{background-color:#1b5e20 !important}.mdl-color-text--green-A100{color:#b9f6ca !important}.mdl-color--green-A100{background-color:#b9f6ca !important}.mdl-color-text--green-A200{color:#69f0ae !important}.mdl-color--green-A200{background-color:#69f0ae !important}.mdl-color-text--green-A400{color:#00e676 !important}.mdl-color--green-A400{background-color:#00e676 !important}.mdl-color-text--green-A700{color:#00c853 !important}.mdl-color--green-A700{background-color:#00c853 !important}.mdl-color-text--light-green{color:#8bc34a !important}.mdl-color--light-green{background-color:#8bc34a !important}.mdl-color-text--light-green-50{color:#f1f8e9 !important}.mdl-color--light-green-50{background-color:#f1f8e9 !important}.mdl-color-text--light-green-100{color:#dcedc8 !important}.mdl-color--light-green-100{background-color:#dcedc8 !important}.mdl-color-text--light-green-200{color:#c5e1a5 !important}.mdl-color--light-green-200{background-color:#c5e1a5 !important}.mdl-color-text--light-green-300{color:#aed581 !important}.mdl-color--light-green-300{background-color:#aed581 !important}.mdl-color-text--light-green-400{color:#9ccc65 !important}.mdl-color--light-green-400{background-color:#9ccc65 !important}.mdl-color-text--light-green-500{color:#8bc34a !important}.mdl-color--light-green-500{background-color:#8bc34a !important}.mdl-color-text--light-green-600{color:#7cb342 !important}.mdl-color--light-green-600{background-color:#7cb342 !important}.mdl-color-text--light-green-700{color:#689f38 !important}.mdl-color--light-green-700{background-color:#689f38 !important}.mdl-color-text--light-green-800{color:#558b2f !important}.mdl-color--light-green-800{background-color:#558b2f !important}.mdl-color-text--light-green-900{color:#33691e !important}.mdl-color--light-green-900{background-color:#33691e !important}.mdl-color-text--light-green-A100{color:#ccff90 !important}.mdl-color--light-green-A100{background-color:#ccff90 !important}.mdl-color-text--light-green-A200{color:#b2ff59 !important}.mdl-color--light-green-A200{background-color:#b2ff59 !important}.mdl-color-text--light-green-A400{color:#76ff03 !important}.mdl-color--light-green-A400{background-color:#76ff03 !important}.mdl-color-text--light-green-A700{color:#64dd17 !important}.mdl-color--light-green-A700{background-color:#64dd17 !important}.mdl-color-text--lime{color:#cddc39 !important}.mdl-color--lime{background-color:#cddc39 !important}.mdl-color-text--lime-50{color:#f9fbe7 !important}.mdl-color--lime-50{background-color:#f9fbe7 !important}.mdl-color-text--lime-100{color:#f0f4c3 !important}.mdl-color--lime-100{background-color:#f0f4c3 !important}.mdl-color-text--lime-200{color:#e6ee9c !important}.mdl-color--lime-200{background-color:#e6ee9c !important}.mdl-color-text--lime-300{color:#dce775 !important}.mdl-color--lime-300{background-color:#dce775 !important}.mdl-color-text--lime-400{color:#d4e157 !important}.mdl-color--lime-400{background-color:#d4e157 !important}.mdl-color-text--lime-500{color:#cddc39 !important}.mdl-color--lime-500{background-color:#cddc39 !important}.mdl-color-text--lime-600{color:#c0ca33 !important}.mdl-color--lime-600{background-color:#c0ca33 !important}.mdl-color-text--lime-700{color:#afb42b !important}.mdl-color--lime-700{background-color:#afb42b !important}.mdl-color-text--lime-800{color:#9e9d24 !important}.mdl-color--lime-800{background-color:#9e9d24 !important}.mdl-color-text--lime-900{color:#827717 !important}.mdl-color--lime-900{background-color:#827717 !important}.mdl-color-text--lime-A100{color:#f4ff81 !important}.mdl-color--lime-A100{background-color:#f4ff81 !important}.mdl-color-text--lime-A200{color:#eeff41 !important}.mdl-color--lime-A200{background-color:#eeff41 !important}.mdl-color-text--lime-A400{color:#c6ff00 !important}.mdl-color--lime-A400{background-color:#c6ff00 !important}.mdl-color-text--lime-A700{color:#aeea00 !important}.mdl-color--lime-A700{background-color:#aeea00 !important}.mdl-color-text--yellow{color:#ffeb3b !important}.mdl-color--yellow{background-color:#ffeb3b !important}.mdl-color-text--yellow-50{color:#fffde7 !important}.mdl-color--yellow-50{background-color:#fffde7 !important}.mdl-color-text--yellow-100{color:#fff9c4 !important}.mdl-color--yellow-100{background-color:#fff9c4 !important}.mdl-color-text--yellow-200{color:#fff59d !important}.mdl-color--yellow-200{background-color:#fff59d !important}.mdl-color-text--yellow-300{color:#fff176 !important}.mdl-color--yellow-300{background-color:#fff176 !important}.mdl-color-text--yellow-400{color:#ffee58 !important}.mdl-color--yellow-400{background-color:#ffee58 !important}.mdl-color-text--yellow-500{color:#ffeb3b !important}.mdl-color--yellow-500{background-color:#ffeb3b !important}.mdl-color-text--yellow-600{color:#fdd835 !important}.mdl-color--yellow-600{background-color:#fdd835 !important}.mdl-color-text--yellow-700{color:#fbc02d !important}.mdl-color--yellow-700{background-color:#fbc02d !important}.mdl-color-text--yellow-800{color:#f9a825 !important}.mdl-color--yellow-800{background-color:#f9a825 !important}.mdl-color-text--yellow-900{color:#f57f17 !important}.mdl-color--yellow-900{background-color:#f57f17 !important}.mdl-color-text--yellow-A100{color:#ffff8d !important}.mdl-color--yellow-A100{background-color:#ffff8d !important}.mdl-color-text--yellow-A200{color:#ff0 !important}.mdl-color--yellow-A200{background-color:#ff0 !important}.mdl-color-text--yellow-A400{color:#ffea00 !important}.mdl-color--yellow-A400{background-color:#ffea00 !important}.mdl-color-text--yellow-A700{color:#ffd600 !important}.mdl-color--yellow-A700{background-color:#ffd600 !important}.mdl-color-text--amber{color:#ffc107 !important}.mdl-color--amber{background-color:#ffc107 !important}.mdl-color-text--amber-50{color:#fff8e1 !important}.mdl-color--amber-50{background-color:#fff8e1 !important}.mdl-color-text--amber-100{color:#ffecb3 !important}.mdl-color--amber-100{background-color:#ffecb3 !important}.mdl-color-text--amber-200{color:#ffe082 !important}.mdl-color--amber-200{background-color:#ffe082 !important}.mdl-color-text--amber-300{color:#ffd54f !important}.mdl-color--amber-300{background-color:#ffd54f !important}.mdl-color-text--amber-400{color:#ffca28 !important}.mdl-color--amber-400{background-color:#ffca28 !important}.mdl-color-text--amber-500{color:#ffc107 !important}.mdl-color--amber-500{background-color:#ffc107 !important}.mdl-color-text--amber-600{color:#ffb300 !important}.mdl-color--amber-600{background-color:#ffb300 !important}.mdl-color-text--amber-700{color:#ffa000 !important}.mdl-color--amber-700{background-color:#ffa000 !important}.mdl-color-text--amber-800{color:#ff8f00 !important}.mdl-color--amber-800{background-color:#ff8f00 !important}.mdl-color-text--amber-900{color:#ff6f00 !important}.mdl-color--amber-900{background-color:#ff6f00 !important}.mdl-color-text--amber-A100{color:#ffe57f !important}.mdl-color--amber-A100{background-color:#ffe57f !important}.mdl-color-text--amber-A200{color:#ffd740 !important}.mdl-color--amber-A200{background-color:#ffd740 !important}.mdl-color-text--amber-A400{color:#ffc400 !important}.mdl-color--amber-A400{background-color:#ffc400 !important}.mdl-color-text--amber-A700{color:#ffab00 !important}.mdl-color--amber-A700{background-color:#ffab00 !important}.mdl-color-text--orange{color:#ff9800 !important}.mdl-color--orange{background-color:#ff9800 !important}.mdl-color-text--orange-50{color:#fff3e0 !important}.mdl-color--orange-50{background-color:#fff3e0 !important}.mdl-color-text--orange-100{color:#ffe0b2 !important}.mdl-color--orange-100{background-color:#ffe0b2 !important}.mdl-color-text--orange-200{color:#ffcc80 !important}.mdl-color--orange-200{background-color:#ffcc80 !important}.mdl-color-text--orange-300{color:#ffb74d !important}.mdl-color--orange-300{background-color:#ffb74d !important}.mdl-color-text--orange-400{color:#ffa726 !important}.mdl-color--orange-400{background-color:#ffa726 !important}.mdl-color-text--orange-500{color:#ff9800 !important}.mdl-color--orange-500{background-color:#ff9800 !important}.mdl-color-text--orange-600{color:#fb8c00 !important}.mdl-color--orange-600{background-color:#fb8c00 !important}.mdl-color-text--orange-700{color:#f57c00 !important}.mdl-color--orange-700{background-color:#f57c00 !important}.mdl-color-text--orange-800{color:#ef6c00 !important}.mdl-color--orange-800{background-color:#ef6c00 !important}.mdl-color-text--orange-900{color:#e65100 !important}.mdl-color--orange-900{background-color:#e65100 !important}.mdl-color-text--orange-A100{color:#ffd180 !important}.mdl-color--orange-A100{background-color:#ffd180 !important}.mdl-color-text--orange-A200{color:#ffab40 !important}.mdl-color--orange-A200{background-color:#ffab40 !important}.mdl-color-text--orange-A400{color:#ff9100 !important}.mdl-color--orange-A400{background-color:#ff9100 !important}.mdl-color-text--orange-A700{color:#ff6d00 !important}.mdl-color--orange-A700{background-color:#ff6d00 !important}.mdl-color-text--deep-orange{color:#ff5722 !important}.mdl-color--deep-orange{background-color:#ff5722 !important}.mdl-color-text--deep-orange-50{color:#fbe9e7 !important}.mdl-color--deep-orange-50{background-color:#fbe9e7 !important}.mdl-color-text--deep-orange-100{color:#ffccbc !important}.mdl-color--deep-orange-100{background-color:#ffccbc !important}.mdl-color-text--deep-orange-200{color:#ffab91 !important}.mdl-color--deep-orange-200{background-color:#ffab91 !important}.mdl-color-text--deep-orange-300{color:#ff8a65 !important}.mdl-color--deep-orange-300{background-color:#ff8a65 !important}.mdl-color-text--deep-orange-400{color:#ff7043 !important}.mdl-color--deep-orange-400{background-color:#ff7043 !important}.mdl-color-text--deep-orange-500{color:#ff5722 !important}.mdl-color--deep-orange-500{background-color:#ff5722 !important}.mdl-color-text--deep-orange-600{color:#f4511e !important}.mdl-color--deep-orange-600{background-color:#f4511e !important}.mdl-color-text--deep-orange-700{color:#e64a19 !important}.mdl-color--deep-orange-700{background-color:#e64a19 !important}.mdl-color-text--deep-orange-800{color:#d84315 !important}.mdl-color--deep-orange-800{background-color:#d84315 !important}.mdl-color-text--deep-orange-900{color:#bf360c !important}.mdl-color--deep-orange-900{background-color:#bf360c !important}.mdl-color-text--deep-orange-A100{color:#ff9e80 !important}.mdl-color--deep-orange-A100{background-color:#ff9e80 !important}.mdl-color-text--deep-orange-A200{color:#ff6e40 !important}.mdl-color--deep-orange-A200{background-color:#ff6e40 !important}.mdl-color-text--deep-orange-A400{color:#ff3d00 !important}.mdl-color--deep-orange-A400{background-color:#ff3d00 !important}.mdl-color-text--deep-orange-A700{color:#dd2c00 !important}.mdl-color--deep-orange-A700{background-color:#dd2c00 !important}.mdl-color-text--brown{color:#795548 !important}.mdl-color--brown{background-color:#795548 !important}.mdl-color-text--brown-50{color:#efebe9 !important}.mdl-color--brown-50{background-color:#efebe9 !important}.mdl-color-text--brown-100{color:#d7ccc8 !important}.mdl-color--brown-100{background-color:#d7ccc8 !important}.mdl-color-text--brown-200{color:#bcaaa4 !important}.mdl-color--brown-200{background-color:#bcaaa4 !important}.mdl-color-text--brown-300{color:#a1887f !important}.mdl-color--brown-300{background-color:#a1887f !important}.mdl-color-text--brown-400{color:#8d6e63 !important}.mdl-color--brown-400{background-color:#8d6e63 !important}.mdl-color-text--brown-500{color:#795548 !important}.mdl-color--brown-500{background-color:#795548 !important}.mdl-color-text--brown-600{color:#6d4c41 !important}.mdl-color--brown-600{background-color:#6d4c41 !important}.mdl-color-text--brown-700{color:#5d4037 !important}.mdl-color--brown-700{background-color:#5d4037 !important}.mdl-color-text--brown-800{color:#4e342e !important}.mdl-color--brown-800{background-color:#4e342e !important}.mdl-color-text--brown-900{color:#3e2723 !important}.mdl-color--brown-900{background-color:#3e2723 !important}.mdl-color-text--grey{color:#9e9e9e !important}.mdl-color--grey{background-color:#9e9e9e !important}.mdl-color-text--grey-50{color:#fafafa !important}.mdl-color--grey-50{background-color:#fafafa !important}.mdl-color-text--grey-100{color:#f5f5f5 !important}.mdl-color--grey-100{background-color:#f5f5f5 !important}.mdl-color-text--grey-200{color:#eee !important}.mdl-color--grey-200{background-color:#eee !important}.mdl-color-text--grey-300{color:#e0e0e0 !important}.mdl-color--grey-300{background-color:#e0e0e0 !important}.mdl-color-text--grey-400{color:#bdbdbd !important}.mdl-color--grey-400{background-color:#bdbdbd !important}.mdl-color-text--grey-500{color:#9e9e9e !important}.mdl-color--grey-500{background-color:#9e9e9e !important}.mdl-color-text--grey-600{color:#757575 !important}.mdl-color--grey-600{background-color:#757575 !important}.mdl-color-text--grey-700{color:#616161 !important}.mdl-color--grey-700{background-color:#616161 !important}.mdl-color-text--grey-800{color:#424242 !important}.mdl-color--grey-800{background-color:#424242 !important}.mdl-color-text--grey-900{color:#212121 !important}.mdl-color--grey-900{background-color:#212121 !important}.mdl-color-text--blue-grey{color:#607d8b !important}.mdl-color--blue-grey{background-color:#607d8b !important}.mdl-color-text--blue-grey-50{color:#eceff1 !important}.mdl-color--blue-grey-50{background-color:#eceff1 !important}.mdl-color-text--blue-grey-100{color:#cfd8dc !important}.mdl-color--blue-grey-100{background-color:#cfd8dc !important}.mdl-color-text--blue-grey-200{color:#b0bec5 !important}.mdl-color--blue-grey-200{background-color:#b0bec5 !important}.mdl-color-text--blue-grey-300{color:#90a4ae !important}.mdl-color--blue-grey-300{background-color:#90a4ae !important}.mdl-color-text--blue-grey-400{color:#78909c !important}.mdl-color--blue-grey-400{background-color:#78909c !important}.mdl-color-text--blue-grey-500{color:#607d8b !important}.mdl-color--blue-grey-500{background-color:#607d8b !important}.mdl-color-text--blue-grey-600{color:#546e7a !important}.mdl-color--blue-grey-600{background-color:#546e7a !important}.mdl-color-text--blue-grey-700{color:#455a64 !important}.mdl-color--blue-grey-700{background-color:#455a64 !important}.mdl-color-text--blue-grey-800{color:#37474f !important}.mdl-color--blue-grey-800{background-color:#37474f !important}.mdl-color-text--blue-grey-900{color:#263238 !important}.mdl-color--blue-grey-900{background-color:#263238 !important}.mdl-color--black{background-color:#000 !important}.mdl-color-text--black{color:#000 !important}.mdl-color--white{background-color:#fff !important}.mdl-color-text--white{color:#fff !important}.mdl-color--primary{background-color:#4285f4 !important}.mdl-color--primary-contrast{background-color:#fff !important}.mdl-color--primary-dark{background-color:#1976d2 !important}.mdl-color--accent{background-color:#ffd740 !important}.mdl-color--accent-contrast{background-color:#424242 !important}.mdl-color-text--primary{color:#4285f4 !important}.mdl-color-text--primary-contrast{color:#fff !important}.mdl-color-text--primary-dark{color:#1976d2 !important}.mdl-color-text--accent{color:#ffd740 !important}.mdl-color-text--accent-contrast{color:#424242 !important}.mdl-ripple{background:#000;border-radius:50%;height:50px;left:0;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:50px;overflow:hidden}.mdl-ripple.is-animating{-webkit-transition:width 0.3s cubic-bezier(0, 0, 0.2, 1),height 0.3s cubic-bezier(0, 0, 0.2, 1),opacity 0.6s cubic-bezier(0, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1);transition:width 0.3s cubic-bezier(0, 0, 0.2, 1),height 0.3s cubic-bezier(0, 0, 0.2, 1),opacity 0.6s cubic-bezier(0, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0, 0, 0.2, 1),width 0.3s cubic-bezier(0, 0, 0.2, 1),height 0.3s cubic-bezier(0, 0, 0.2, 1),opacity 0.6s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0, 0, 0.2, 1),width 0.3s cubic-bezier(0, 0, 0.2, 1),height 0.3s cubic-bezier(0, 0, 0.2, 1),opacity 0.6s cubic-bezier(0, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1)}.mdl-ripple.is-visible{opacity:.3}.mdl-animation--default,.mdl-animation--fast-out-slow-in{-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.mdl-animation--linear-out-slow-in{-webkit-transition-timing-function:cubic-bezier(0, 0, 0.2, 1);transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.mdl-animation--fast-out-linear-in{-webkit-transition-timing-function:cubic-bezier(0.4, 0, 1, 1);transition-timing-function:cubic-bezier(0.4, 0, 1, 1)}.mdl-badge{position:relative;white-space:nowrap;margin-right:24px}.mdl-badge:not([data-badge]){margin-right:auto}.mdl-badge[data-badge]:after{content:attr(data-badge);display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:row;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;-webkit-box-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;-ms-flex-align:center;-webkit-box-align:center;align-items:center;position:absolute;top:-11px;right:-24px;font-family:"Roboto","Helvetica","Arial",sans-serif;font-weight:600;font-size:12px;width:22px;height:22px;border-radius:50%;background:#ffd740;color:#424242}.mdl-button .mdl-badge[data-badge]:after{top:-10px;right:-5px}.mdl-badge.mdl-badge--no-background[data-badge]:after{color:#ffd740;background:rgba(66,66,66,0.2);box-shadow:0 0 1px gray}.mdl-badge.mdl-badge--overlap{margin-right:10px}.mdl-badge.mdl-badge--overlap:after{right:-10px}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:0;min-width:64px;padding:0 16px;display:inline-block;font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;-webkit-transition:box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1),background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1),background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),color 0.2s cubic-bezier(0.4, 0, 0.2, 1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.mdl-button::-moz-focus-inner{border:0}.mdl-button:hover{background-color:rgba(158,158,158,0.2)}.mdl-button:focus:not(:active){background-color:rgba(0,0,0,0.12)}.mdl-button:active{background-color:rgba(158,158,158,0.4)}.mdl-button.mdl-button--colored{color:#4285f4}.mdl-button.mdl-button--colored:focus:not(:active){background-color:rgba(0,0,0,0.12)}input.mdl-button[type="submit"]{-webkit-appearance:none}.mdl-button--raised{background:rgba(158,158,158,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12)}.mdl-button--raised:active{box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.2);background-color:rgba(158,158,158,0.4)}.mdl-button--raised:focus:not(:active){box-shadow:0 0 8px rgba(0,0,0,0.18),0 8px 16px rgba(0,0,0,0.36);background-color:rgba(158,158,158,0.4)}.mdl-button--raised.mdl-button--colored{background:#4285f4;color:#fff}.mdl-button--raised.mdl-button--colored:hover{background-color:#4285f4}.mdl-button--raised.mdl-button--colored:active{background-color:#4285f4}.mdl-button--raised.mdl-button--colored:focus:not(:active){background-color:#4285f4}.mdl-button--raised.mdl-button--colored .mdl-ripple{background:#fff}.mdl-button--fab{border-radius:50%;font-size:24px;height:56px;margin:auto;min-width:56px;width:56px;padding:0;overflow:hidden;background:rgba(158,158,158,0.2);box-shadow:0 1px 1.5px 0 rgba(0,0,0,0.12),0 1px 1px 0 rgba(0,0,0,0.24);position:relative;line-height:normal}.mdl-button--fab .material-icons{position:absolute;top:50%;left:50%;-webkit-transform:translate(-12px, -12px);transform:translate(-12px, -12px);line-height:24px;width:24px}.mdl-button--fab.mdl-button--mini-fab{height:40px;min-width:40px;width:40px}.mdl-button--fab .mdl-button__ripple-container{border-radius:50%;-webkit-mask-image:-webkit-radial-gradient(circle, #fff, #000)}.mdl-button--fab:active{box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.2);background-color:rgba(158,158,158,0.4)}.mdl-button--fab:focus:not(:active){box-shadow:0 0 8px rgba(0,0,0,0.18),0 8px 16px rgba(0,0,0,0.36);background-color:rgba(158,158,158,0.4)}.mdl-button--fab.mdl-button--colored{background:#ffd740;color:#424242}.mdl-button--fab.mdl-button--colored:hover{background-color:#ffd740}.mdl-button--fab.mdl-button--colored:focus:not(:active){background-color:#ffd740}.mdl-button--fab.mdl-button--colored:active{background-color:#ffd740}.mdl-button--fab.mdl-button--colored .mdl-ripple{background:#424242}.mdl-button--icon{border-radius:50%;font-size:24px;height:32px;margin-left:0;margin-right:0;min-width:32px;width:32px;padding:0;overflow:hidden;color:inherit;line-height:normal}.mdl-button--icon .material-icons{position:absolute;top:50%;left:50%;-webkit-transform:translate(-12px, -12px);transform:translate(-12px, -12px);line-height:24px;width:24px}.mdl-button--icon.mdl-button--mini-icon{height:24px;min-width:24px;width:24px}.mdl-button--icon.mdl-button--mini-icon .material-icons{top:0;left:0}.mdl-button--icon .mdl-button__ripple-container{border-radius:50%;-webkit-mask-image:-webkit-radial-gradient(circle, #fff, #000)}.mdl-button__ripple-container{display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:0;overflow:hidden}.mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple,.mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple{background-color:transparent}.mdl-button--primary.mdl-button--primary{color:#4285f4}.mdl-button--primary.mdl-button--primary .mdl-ripple{background:#fff}.mdl-button--primary.mdl-button--primary.mdl-button--raised,.mdl-button--primary.mdl-button--primary.mdl-button--fab{color:#fff;background-color:#4285f4}.mdl-button--accent.mdl-button--accent{color:#ffd740}.mdl-button--accent.mdl-button--accent .mdl-ripple{background:#424242}.mdl-button--accent.mdl-button--accent.mdl-button--raised,.mdl-button--accent.mdl-button--accent.mdl-button--fab{color:#424242;background-color:#ffd740}.mdl-button[disabled][disabled],.mdl-button.mdl-button--disabled.mdl-button--disabled{color:rgba(0,0,0,0.26);cursor:default;background-color:transparent}.mdl-button--fab[disabled][disabled],.mdl-button--fab.mdl-button--disabled.mdl-button--disabled{background-color:rgba(0,0,0,0.12);color:rgba(0,0,0,0.26)}.mdl-button--raised[disabled][disabled],.mdl-button--raised.mdl-button--disabled.mdl-button--disabled{background-color:rgba(0,0,0,0.12);color:rgba(0,0,0,0.26);box-shadow:none}.mdl-button--colored[disabled][disabled],.mdl-button--colored.mdl-button--disabled.mdl-button--disabled{color:rgba(0,0,0,0.26)}.mdl-button .material-icons{vertical-align:middle}.mdl-card{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;font-size:16px;font-weight:400;min-height:200px;overflow:hidden;width:330px;z-index:1;position:relative;background:#fff;border-radius:2px;box-sizing:border-box}.mdl-card__media{background-color:#ffd740;background-repeat:repeat;background-position:50% 50%;background-size:cover;background-origin:padding-box;background-attachment:scroll;box-sizing:border-box}.mdl-card__title{-ms-flex-align:center;-webkit-box-align:center;align-items:center;color:#000;display:block;display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-pack:stretch;-webkit-box-pack:stretch;justify-content:stretch;line-height:normal;padding:16px;-webkit-perspective-origin:165px 56px;perspective-origin:165px 56px;-webkit-transform-origin:165px 56px;transform-origin:165px 56px;box-sizing:border-box}.mdl-card__title.mdl-card--border{border-bottom:1px solid rgba(0,0,0,0.1)}.mdl-card__title-text{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;color:inherit;display:block;display:-ms-flexbox;display:-webkit-box;display:flex;font-size:24px;font-weight:300;line-height:normal;overflow:hidden;-webkit-transform-origin:149px 48px;transform-origin:149px 48px;margin:0}.mdl-card__subtitle-text{font-size:14px;color:rgba(0,0,0,0.54);margin:0}.mdl-card__supporting-text{color:rgba(0,0,0,0.54);font-size:1rem;line-height:18px;overflow:hidden;padding:16px;width:90%}.mdl-card__supporting-text.mdl-card--border{border-bottom:1px solid rgba(0,0,0,0.1)}.mdl-card__actions{font-size:16px;line-height:normal;width:100%;background-color:transparent;padding:8px;box-sizing:border-box}.mdl-card__actions.mdl-card--border{border-top:1px solid rgba(0,0,0,0.1)}.mdl-card--expand{-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1}.mdl-card__menu{position:absolute;right:16px;top:16px}.mdl-checkbox{position:relative;z-index:1;vertical-align:middle;display:inline-block;box-sizing:border-box;width:100%;height:24px;margin:0;padding:0}.mdl-checkbox.is-upgraded{padding-left:24px}.mdl-checkbox__input{line-height:24px}.mdl-checkbox.is-upgraded .mdl-checkbox__input{position:absolute;width:0;height:0;margin:0;padding:0;opacity:0;-ms-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:none}.mdl-checkbox__box-outline{position:absolute;top:3px;left:0;display:inline-block;box-sizing:border-box;width:16px;height:16px;margin:0;cursor:pointer;overflow:hidden;border:2px solid rgba(0,0,0,0.54);border-radius:2px;z-index:2}.mdl-checkbox.is-checked .mdl-checkbox__box-outline{border:2px solid #4285f4}fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,.mdl-checkbox.is-disabled .mdl-checkbox__box-outline{border:2px solid rgba(0,0,0,0.26);cursor:auto}.mdl-checkbox__focus-helper{position:absolute;top:3px;left:0;display:inline-block;box-sizing:border-box;width:16px;height:16px;border-radius:50%;background-color:transparent}.mdl-checkbox.is-focused .mdl-checkbox__focus-helper{box-shadow:0 0 0 8px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}.mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper{box-shadow:0 0 0 8px rgba(66,133,244,0.26);background-color:rgba(66,133,244,0.26)}.mdl-checkbox__tick-outline{position:absolute;top:0;left:0;height:100%;width:100%;-webkit-mask:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==");mask:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==");background:0 0;-webkit-transition-duration:.28s;transition-duration:.28s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition-property:background;transition-property:background}.mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background:#4285f4 url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K")}fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,.mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline{background:rgba(0,0,0,0.26) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K")}.mdl-checkbox__label{position:relative;cursor:pointer;font-size:16px;line-height:24px;margin:0}fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,.mdl-checkbox.is-disabled .mdl-checkbox__label{color:rgba(0,0,0,0.26);cursor:auto}.mdl-checkbox__ripple-container{position:absolute;z-index:2;top:-6px;left:-10px;box-sizing:border-box;width:36px;height:36px;border-radius:50%;cursor:pointer;overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(circle, #fff, #000)}.mdl-checkbox__ripple-container .mdl-ripple{background:#4285f4}fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container,.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container{cursor:auto}fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple{background:0 0}.mdl-chip{height:32px;font-family:"Roboto","Helvetica","Arial",sans-serif;line-height:32px;padding:0 12px;border:0;border-radius:16px;background-color:#dedede;display:inline-block;color:rgba(0,0,0,0.87);margin:2px 0;font-size:0;white-space:nowrap}.mdl-chip__text{font-size:13px;vertical-align:middle;display:inline-block}.mdl-chip__action{height:24px;width:24px;background:0 0;opacity:.54;cursor:pointer;padding:0;margin:0 0 0 4px;font-size:13px;text-decoration:none;color:rgba(0,0,0,0.87);border:none;outline:none}.mdl-chip__action,.mdl-chip__contact{display:inline-block;vertical-align:middle;overflow:hidden;text-align:center}.mdl-chip__contact{height:32px;width:32px;border-radius:16px;margin-right:8px;font-size:18px;line-height:32px}.mdl-chip:focus{outline:0;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12)}.mdl-chip:active{background-color:#d6d6d6}.mdl-chip--deletable{padding-right:4px}.mdl-chip--contact{padding-left:0}.mdl-data-table{position:relative;border:1px solid rgba(0,0,0,0.12);border-collapse:collapse;white-space:nowrap;font-size:13px;background-color:#fff}.mdl-data-table thead{padding-bottom:3px}.mdl-data-table thead .mdl-data-table__select{margin-top:0}.mdl-data-table tbody tr{position:relative;height:48px;-webkit-transition-duration:.28s;transition-duration:.28s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition-property:background-color;transition-property:background-color}.mdl-data-table tbody tr.is-selected{background-color:#e0e0e0}.mdl-data-table tbody tr:hover{background-color:#eee}.mdl-data-table td{text-align:right}.mdl-data-table th{padding:0 18px 12px 18px;text-align:right}.mdl-data-table td:first-of-type,.mdl-data-table th:first-of-type{padding-left:24px}.mdl-data-table td:last-of-type,.mdl-data-table th:last-of-type{padding-right:24px}.mdl-data-table td{position:relative;height:48px;border-top:1px solid rgba(0,0,0,0.12);border-bottom:1px solid rgba(0,0,0,0.12);padding:12px 18px;box-sizing:border-box}.mdl-data-table td,.mdl-data-table td .mdl-data-table__select{vertical-align:middle}.mdl-data-table th{position:relative;vertical-align:bottom;text-overflow:ellipsis;font-weight:700;line-height:24px;letter-spacing:0;height:48px;font-size:12px;color:rgba(0,0,0,0.54);padding-bottom:8px;box-sizing:border-box}.mdl-data-table th.mdl-data-table__header--sorted-ascending,.mdl-data-table th.mdl-data-table__header--sorted-descending{color:rgba(0,0,0,0.87)}.mdl-data-table th.mdl-data-table__header--sorted-ascending:before,.mdl-data-table th.mdl-data-table__header--sorted-descending:before{font-family:'Material Icons';font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;word-wrap:normal;font-feature-settings:'liga';-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;font-size:16px;content:"\e5d8";margin-right:5px;vertical-align:sub}.mdl-data-table th.mdl-data-table__header--sorted-ascending:hover,.mdl-data-table th.mdl-data-table__header--sorted-descending:hover{cursor:pointer}.mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before,.mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before{color:rgba(0,0,0,0.26)}.mdl-data-table th.mdl-data-table__header--sorted-descending:before{content:"\e5db"}.mdl-data-table__select{width:16px}.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric{text-align:left}.mdl-dialog{border:none;box-shadow:0 9px 46px 8px rgba(0,0,0,0.14),0 11px 15px -7px rgba(0,0,0,0.12),0 24px 38px 3px rgba(0,0,0,0.2);width:280px}.mdl-dialog__title{padding:24px 24px 0;margin:0;font-size:2.5rem}.mdl-dialog__actions{padding:8px 8px 8px 24px;display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:row-reverse;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-direction:row-reverse;-ms-flex-wrap:wrap;flex-wrap:wrap}.mdl-dialog__actions>*{margin-right:8px;height:36px}.mdl-dialog__actions>*:first-child{margin-right:0}.mdl-dialog__actions--full-width{padding:0 0 8px}.mdl-dialog__actions--full-width>*{height:48px;-ms-flex:0 0 100%;-webkit-box-flex:0;flex:0 0 100%;padding-right:16px;margin-right:0;text-align:right}.mdl-dialog__content{padding:20px 24px 24px;color:rgba(0,0,0,0.54)}.mdl-mega-footer{padding:16px 40px;color:#9e9e9e;background-color:#424242}.mdl-mega-footer--top-section:after,.mdl-mega-footer--middle-section:after,.mdl-mega-footer--bottom-section:after,.mdl-mega-footer__top-section:after,.mdl-mega-footer__middle-section:after,.mdl-mega-footer__bottom-section:after{content:'';display:block;clear:both}.mdl-mega-footer--left-section,.mdl-mega-footer__left-section,.mdl-mega-footer--right-section,.mdl-mega-footer__right-section{margin-bottom:16px}.mdl-mega-footer--right-section a,.mdl-mega-footer__right-section a{display:block;margin-bottom:16px;color:inherit;text-decoration:none}@media screen and (min-width: 760px){.mdl-mega-footer--left-section,.mdl-mega-footer__left-section{float:left}.mdl-mega-footer--right-section,.mdl-mega-footer__right-section{float:right}.mdl-mega-footer--right-section a,.mdl-mega-footer__right-section a{display:inline-block;margin-left:16px;line-height:36px;vertical-align:middle}}.mdl-mega-footer--social-btn,.mdl-mega-footer__social-btn{width:36px;height:36px;padding:0;margin:0;background-color:#9e9e9e;border:none}.mdl-mega-footer--drop-down-section,.mdl-mega-footer__drop-down-section{display:block;position:relative}@media screen and (min-width: 760px){.mdl-mega-footer--drop-down-section,.mdl-mega-footer__drop-down-section{width:33%}.mdl-mega-footer--drop-down-section:nth-child(1),.mdl-mega-footer--drop-down-section:nth-child(2),.mdl-mega-footer__drop-down-section:nth-child(1),.mdl-mega-footer__drop-down-section:nth-child(2){float:left}.mdl-mega-footer--drop-down-section:nth-child(3),.mdl-mega-footer__drop-down-section:nth-child(3){float:right}.mdl-mega-footer--drop-down-section:nth-child(3):after,.mdl-mega-footer__drop-down-section:nth-child(3):after{clear:right}.mdl-mega-footer--drop-down-section:nth-child(4),.mdl-mega-footer__drop-down-section:nth-child(4){clear:right;float:right}.mdl-mega-footer--middle-section:after,.mdl-mega-footer__middle-section:after{content:'';display:block;clear:both}.mdl-mega-footer--bottom-section,.mdl-mega-footer__bottom-section{padding-top:0}}@media screen and (min-width: 1024px){.mdl-mega-footer--drop-down-section,.mdl-mega-footer--drop-down-section:nth-child(3),.mdl-mega-footer--drop-down-section:nth-child(4),.mdl-mega-footer__drop-down-section,.mdl-mega-footer__drop-down-section:nth-child(3),.mdl-mega-footer__drop-down-section:nth-child(4){width:24%;float:left}}.mdl-mega-footer--heading-checkbox,.mdl-mega-footer__heading-checkbox{position:absolute;width:100%;height:55.8px;padding:32px;margin:-16px 0 0;cursor:pointer;z-index:1;opacity:0}.mdl-mega-footer--heading-checkbox+.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox+.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox+.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox+.mdl-mega-footer__heading:after{font-family:'Material Icons';content:'\E5CE'}.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer--heading+.mdl-mega-footer--link-list,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer__heading+.mdl-mega-footer__link-list,.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer--heading+.mdl-mega-footer--link-list,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer__heading+.mdl-mega-footer__link-list{display:none}.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer__heading:after{font-family:'Material Icons';content:'\E5CF'}.mdl-mega-footer--heading,.mdl-mega-footer__heading{position:relative;width:100%;padding-right:39.8px;margin-bottom:16px;box-sizing:border-box;font-size:14px;line-height:23.8px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#e0e0e0}.mdl-mega-footer--heading:after,.mdl-mega-footer__heading:after{content:'';position:absolute;top:0;right:0;display:block;width:23.8px;height:23.8px;background-size:cover}.mdl-mega-footer--link-list,.mdl-mega-footer__link-list{list-style:none;padding:0;margin:0 0 32px}.mdl-mega-footer--link-list:after,.mdl-mega-footer__link-list:after{clear:both;display:block;content:''}.mdl-mega-footer--link-list li,.mdl-mega-footer__link-list li{font-size:14px;font-weight:400;letter-spacing:0;line-height:20px}.mdl-mega-footer--link-list a,.mdl-mega-footer__link-list a{color:inherit;text-decoration:none;white-space:nowrap}@media screen and (min-width: 760px){.mdl-mega-footer--heading-checkbox,.mdl-mega-footer__heading-checkbox{display:none}.mdl-mega-footer--heading-checkbox+.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox+.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox+.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox+.mdl-mega-footer__heading:after{content:''}.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer__heading+.mdl-mega-footer__link-list,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer--heading+.mdl-mega-footer--link-list,.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer__heading+.mdl-mega-footer__link-list,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer--heading+.mdl-mega-footer--link-list{display:block}.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox:checked+.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox:checked+.mdl-mega-footer__heading:after{content:''}}.mdl-mega-footer--bottom-section,.mdl-mega-footer__bottom-section{padding-top:16px;margin-bottom:16px}.mdl-logo{margin-bottom:16px;color:#fff}.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li{float:left;margin-bottom:0;margin-right:16px}@media screen and (min-width: 760px){.mdl-logo{float:left;margin-bottom:0;margin-right:16px}}.mdl-mini-footer{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-ms-flex-pack:justify;-webkit-box-pack:justify;justify-content:space-between;padding:32px 16px;color:#9e9e9e;background-color:#424242}.mdl-mini-footer:after{content:'';display:block}.mdl-mini-footer .mdl-logo{line-height:36px}.mdl-mini-footer--link-list,.mdl-mini-footer__link-list{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row nowrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;list-style:none;margin:0;padding:0}.mdl-mini-footer--link-list li,.mdl-mini-footer__link-list li{margin-bottom:0;margin-right:16px}@media screen and (min-width: 760px){.mdl-mini-footer--link-list li,.mdl-mini-footer__link-list li{line-height:36px}}.mdl-mini-footer--link-list a,.mdl-mini-footer__link-list a{color:inherit;text-decoration:none;white-space:nowrap}.mdl-mini-footer--left-section,.mdl-mini-footer__left-section{display:inline-block;-ms-flex-order:0;-webkit-box-ordinal-group:1;order:0}.mdl-mini-footer--right-section,.mdl-mini-footer__right-section{display:inline-block;-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.mdl-mini-footer--social-btn,.mdl-mini-footer__social-btn{width:36px;height:36px;padding:0;margin:0;background-color:#9e9e9e;border:none}.mdl-icon-toggle{position:relative;z-index:1;vertical-align:middle;display:inline-block;height:32px;margin:0;padding:0}.mdl-icon-toggle__input{line-height:32px}.mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input{position:absolute;width:0;height:0;margin:0;padding:0;opacity:0;-ms-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:none}.mdl-icon-toggle__label{display:inline-block;position:relative;cursor:pointer;height:32px;width:32px;min-width:32px;color:#616161;border-radius:50%;padding:0;margin-left:0;margin-right:0;text-align:center;background-color:transparent;will-change:background-color;-webkit-transition:background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition:background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),color 0.2s cubic-bezier(0.4, 0, 0.2, 1)}.mdl-icon-toggle__label.material-icons{line-height:32px;font-size:24px}.mdl-icon-toggle.is-checked .mdl-icon-toggle__label{color:#4285f4}.mdl-icon-toggle.is-disabled .mdl-icon-toggle__label{color:rgba(0,0,0,0.26);cursor:auto;-webkit-transition:none;transition:none}.mdl-icon-toggle.is-focused .mdl-icon-toggle__label{background-color:rgba(0,0,0,0.12)}.mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label{background-color:rgba(66,133,244,0.26)}.mdl-icon-toggle__ripple-container{position:absolute;z-index:2;top:-2px;left:-2px;box-sizing:border-box;width:36px;height:36px;border-radius:50%;cursor:pointer;overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(circle, #fff, #000)}.mdl-icon-toggle__ripple-container .mdl-ripple{background:#616161}.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container{cursor:auto}.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple{background:0 0}.mdl-list{display:block;padding:8px 0;list-style:none}.mdl-list__item{font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:16px;font-weight:400;letter-spacing:.04em;line-height:1;min-height:48px;-ms-flex-direction:row;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:16px;cursor:default;color:rgba(0,0,0,0.87);overflow:hidden}.mdl-list__item,.mdl-list__item .mdl-list__item-primary-content{box-sizing:border-box;display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-align:center;-webkit-box-align:center;align-items:center}.mdl-list__item .mdl-list__item-primary-content{-ms-flex-order:0;-webkit-box-ordinal-group:1;order:0;-ms-flex-positive:2;-webkit-box-flex:2;flex-grow:2;text-decoration:none}.mdl-list__item .mdl-list__item-primary-content .mdl-list__item-icon{margin-right:32px}.mdl-list__item .mdl-list__item-primary-content .mdl-list__item-avatar{margin-right:16px}.mdl-list__item .mdl-list__item-secondary-content{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:column;-ms-flex-align:end;-webkit-box-align:end;align-items:flex-end;margin-left:16px}.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-action label{display:inline}.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-info{font-size:12px;font-weight:400;line-height:1;letter-spacing:0;color:rgba(0,0,0,0.54)}.mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-sub-header{padding:0 0 0 16px}.mdl-list__item-icon,.mdl-list__item-icon.material-icons{height:24px;width:24px;font-size:24px;box-sizing:border-box;color:#757575}.mdl-list__item-avatar,.mdl-list__item-avatar.material-icons{height:40px;width:40px;box-sizing:border-box;border-radius:50%;background-color:#757575;font-size:40px;color:#fff}.mdl-list__item--two-line{height:72px}.mdl-list__item--two-line .mdl-list__item-primary-content{height:36px;line-height:20px;display:block}.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-avatar{float:left}.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-icon{float:left;margin-top:6px}.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-secondary-content{height:36px}.mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-sub-title{font-size:14px;font-weight:400;letter-spacing:0;line-height:18px;color:rgba(0,0,0,0.54);display:block;padding:0}.mdl-list__item--three-line{height:88px}.mdl-list__item--three-line .mdl-list__item-primary-content{height:52px;line-height:20px;display:block}.mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-avatar,.mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-icon{float:left}.mdl-list__item--three-line .mdl-list__item-secondary-content{height:52px}.mdl-list__item--three-line .mdl-list__item-text-body{font-size:14px;font-weight:400;letter-spacing:0;line-height:18px;height:52px;color:rgba(0,0,0,0.54);display:block;padding:0}.mdl-menu__container{display:block;margin:0;padding:0;border:none;position:absolute;overflow:visible;height:0;width:0;visibility:hidden;z-index:-1}.mdl-menu__container.is-visible,.mdl-menu__container.is-animating{z-index:999;visibility:visible}.mdl-menu__outline{display:block;background:#fff;margin:0;padding:0;border:none;border-radius:2px;position:absolute;top:0;left:0;overflow:hidden;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:0 0;transform-origin:0 0;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12);will-change:transform;-webkit-transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}.mdl-menu__container.is-visible .mdl-menu__outline{opacity:1;-webkit-transform:scale(1);transform:scale(1);z-index:999}.mdl-menu__outline.mdl-menu--bottom-right{-webkit-transform-origin:100% 0;transform-origin:100% 0}.mdl-menu__outline.mdl-menu--top-left{-webkit-transform-origin:0 100%;transform-origin:0 100%}.mdl-menu__outline.mdl-menu--top-right{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.mdl-menu{position:absolute;list-style:none;top:0;left:0;height:auto;width:auto;min-width:124px;padding:8px 0;margin:0;opacity:0;clip:rect(0 0 0 0);z-index:-1}.mdl-menu__container.is-visible .mdl-menu{opacity:1;z-index:999}.mdl-menu.is-animating{-webkit-transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),clip 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),clip 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.mdl-menu.mdl-menu--bottom-right{left:auto;right:0}.mdl-menu.mdl-menu--top-left{top:auto;bottom:0}.mdl-menu.mdl-menu--top-right{top:auto;left:auto;bottom:0;right:0}.mdl-menu.mdl-menu--unaligned{top:auto;left:auto}.mdl-menu__item{display:block;border:none;color:rgba(0,0,0,0.87);background-color:transparent;text-align:left;margin:0;padding:0 16px;outline-color:#bdbdbd;position:relative;overflow:hidden;font-size:14px;font-weight:400;letter-spacing:0;text-decoration:none;cursor:pointer;height:48px;line-height:48px;white-space:nowrap;opacity:0;-webkit-transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdl-menu__container.is-visible .mdl-menu__item{opacity:1}.mdl-menu__item::-moz-focus-inner{border:0}.mdl-menu__item--full-bleed-divider{border-bottom:1px solid rgba(0,0,0,0.12)}.mdl-menu__item[disabled],.mdl-menu__item[data-mdl-disabled]{color:#bdbdbd;background-color:transparent;cursor:auto}.mdl-menu__item[disabled]:hover,.mdl-menu__item[data-mdl-disabled]:hover{background-color:transparent}.mdl-menu__item[disabled]:focus,.mdl-menu__item[data-mdl-disabled]:focus{background-color:transparent}.mdl-menu__item[disabled] .mdl-ripple,.mdl-menu__item[data-mdl-disabled] .mdl-ripple{background:0 0}.mdl-menu__item:hover{background-color:#eee}.mdl-menu__item:focus{outline:none;background-color:#eee}.mdl-menu__item:active{background-color:#e0e0e0}.mdl-menu__item--ripple-container{display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:0;overflow:hidden}.mdl-progress{display:block;position:relative;height:4px;width:500px;max-width:100%}.mdl-progress>.bar{display:block;position:absolute;top:0;bottom:0;width:0%;-webkit-transition:width 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition:width 0.2s cubic-bezier(0.4, 0, 0.2, 1)}.mdl-progress>.progressbar{background-color:#4285f4;z-index:1;left:0}.mdl-progress>.bufferbar{background-image:-webkit-linear-gradient(left, rgba(255,255,255,0.7), rgba(255,255,255,0.7)),-webkit-linear-gradient(left, #4285f4, #4285f4);background-image:linear-gradient(to right, rgba(255,255,255,0.7), rgba(255,255,255,0.7)),linear-gradient(to right, #4285f4, #4285f4);z-index:0;left:0}.mdl-progress>.auxbar{right:0}@supports (-webkit-appearance: none){.mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate)>.auxbar,.mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate)>.auxbar{background-image:-webkit-linear-gradient(left, rgba(255,255,255,0.7), rgba(255,255,255,0.7)),-webkit-linear-gradient(left, #4285f4, #4285f4);background-image:linear-gradient(to right, rgba(255,255,255,0.7), rgba(255,255,255,0.7)),linear-gradient(to right, #4285f4, #4285f4);-webkit-mask:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=");mask:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=")}}.mdl-progress:not(.mdl-progress--indeterminate)>.auxbar,.mdl-progress:not(.mdl-progress__indeterminate)>.auxbar{background-image:-webkit-linear-gradient(left, rgba(255,255,255,0.9), rgba(255,255,255,0.9)),-webkit-linear-gradient(left, #4285f4, #4285f4);background-image:linear-gradient(to right, rgba(255,255,255,0.9), rgba(255,255,255,0.9)),linear-gradient(to right, #4285f4, #4285f4)}.mdl-progress.mdl-progress--indeterminate>.bar1,.mdl-progress.mdl-progress__indeterminate>.bar1{-webkit-animation-name:indeterminate1;animation-name:indeterminate1}.mdl-progress.mdl-progress--indeterminate>.bar1,.mdl-progress.mdl-progress__indeterminate>.bar1,.mdl-progress.mdl-progress--indeterminate>.bar3,.mdl-progress.mdl-progress__indeterminate>.bar3{background-color:#4285f4;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.mdl-progress.mdl-progress--indeterminate>.bar3,.mdl-progress.mdl-progress__indeterminate>.bar3{background-image:none;-webkit-animation-name:indeterminate2;animation-name:indeterminate2}@-webkit-keyframes indeterminate1{0%{left:0%;width:0%}50%{left:25%;width:75%}75%{left:100%;width:0%}}@keyframes indeterminate1{0%{left:0%;width:0%}50%{left:25%;width:75%}75%{left:100%;width:0%}}@-webkit-keyframes indeterminate2{0%,50%{left:0%;width:0%}75%{left:0%;width:25%}100%{left:100%;width:0%}}@keyframes indeterminate2{0%,50%{left:0%;width:0%}75%{left:0%;width:25%}100%{left:100%;width:0%}}.mdl-navigation{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;box-sizing:border-box}.mdl-navigation__link{color:#424242;text-decoration:none;margin:0;font-size:14px;font-weight:400;line-height:24px;letter-spacing:0;opacity:.87}.mdl-navigation__link .material-icons{vertical-align:middle}.mdl-layout{width:100%;height:100%;display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;overflow-y:auto;overflow-x:hidden;position:relative;-webkit-overflow-scrolling:touch}.mdl-layout.is-small-screen .mdl-layout--large-screen-only{display:none}.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only{display:none}.mdl-layout__container{position:absolute;width:100%;height:100%}.mdl-layout__title,.mdl-layout-title{display:block;position:relative;font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:20px;line-height:1;letter-spacing:.02em;font-weight:400;box-sizing:border-box}.mdl-layout-spacer{-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1}.mdl-layout__drawer{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:240px;height:100%;max-height:100%;position:absolute;top:0;left:0;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12);box-sizing:border-box;border-right:1px solid #e0e0e0;background:#fafafa;-webkit-transform:translateX(-250px);transform:translateX(-250px);-webkit-transform-style:preserve-3d;transform-style:preserve-3d;will-change:transform;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform, -webkit-transform;transition-property:transform,-webkit-transform;color:#424242;overflow:visible;overflow-y:auto;z-index:5}.mdl-layout__drawer.is-visible{-webkit-transform:translateX(0);transform:translateX(0)}.mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content{overflow:hidden}.mdl-layout__drawer>*{-ms-flex-negative:0;flex-shrink:0}.mdl-layout__drawer>.mdl-layout__title,.mdl-layout__drawer>.mdl-layout-title{line-height:64px;padding-left:40px}@media screen and (max-width: 1024px){.mdl-layout__drawer>.mdl-layout__title,.mdl-layout__drawer>.mdl-layout-title{line-height:56px;padding-left:16px}}.mdl-layout__drawer .mdl-navigation{-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-ms-flex-align:stretch;-webkit-box-align:stretch;align-items:stretch;padding-top:16px}.mdl-layout__drawer .mdl-navigation .mdl-navigation__link{display:block;-ms-flex-negative:0;flex-shrink:0;padding:16px 40px;margin:0;color:#757575}@media screen and (max-width: 1024px){.mdl-layout__drawer .mdl-navigation .mdl-navigation__link{padding:16px}}.mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover{background-color:#e0e0e0}.mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current{background-color:#e0e0e0;color:#000}@media screen and (min-width: 1025px){.mdl-layout--fixed-drawer>.mdl-layout__drawer{-webkit-transform:translateX(0);transform:translateX(0)}}.mdl-layout__drawer-button{display:block;position:absolute;height:48px;width:48px;border:0;-ms-flex-negative:0;flex-shrink:0;overflow:hidden;text-align:center;cursor:pointer;font-size:26px;line-height:56px;font-family:Helvetica,Arial,sans-serif;margin:8px 12px;top:0;left:0;color:#fff;z-index:4}.mdl-layout__header .mdl-layout__drawer-button{position:absolute;color:#fff;background-color:inherit}@media screen and (max-width: 1024px){.mdl-layout__header .mdl-layout__drawer-button{margin:4px}}@media screen and (max-width: 1024px){.mdl-layout__drawer-button{margin:4px;color:rgba(0,0,0,0.5)}}@media screen and (min-width: 1025px){.mdl-layout__drawer-button{line-height:54px}.mdl-layout--no-desktop-drawer-button .mdl-layout__drawer-button,.mdl-layout--fixed-drawer>.mdl-layout__drawer-button,.mdl-layout--no-drawer-button .mdl-layout__drawer-button{display:none}}.mdl-layout__header{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:start;-webkit-box-pack:start;justify-content:flex-start;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;width:100%;margin:0;padding:0;border:none;min-height:64px;max-height:1000px;z-index:3;background-color:#4285f4;color:#fff;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition-property:max-height,box-shadow;transition-property:max-height,box-shadow}@media screen and (max-width: 1024px){.mdl-layout__header{min-height:56px}}.mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen)>.mdl-layout__header{margin-left:240px;width:calc(100% - 240px)}@media screen and (min-width: 1025px){.mdl-layout--fixed-drawer>.mdl-layout__header .mdl-layout__header-row{padding-left:40px}}.mdl-layout__header>.mdl-layout-icon{position:absolute;left:40px;top:16px;height:32px;width:32px;overflow:hidden;z-index:3;display:block}@media screen and (max-width: 1024px){.mdl-layout__header>.mdl-layout-icon{left:16px;top:12px}}.mdl-layout.has-drawer .mdl-layout__header>.mdl-layout-icon{display:none}.mdl-layout__header.is-compact{max-height:64px}@media screen and (max-width: 1024px){.mdl-layout__header.is-compact{max-height:56px}}.mdl-layout__header.is-compact.has-tabs{height:112px}@media screen and (max-width: 1024px){.mdl-layout__header.is-compact.has-tabs{min-height:104px}}@media screen and (max-width: 1024px){.mdl-layout__header{display:none}.mdl-layout--fixed-header>.mdl-layout__header{display:-ms-flexbox;display:-webkit-box;display:flex}}.mdl-layout__header--transparent.mdl-layout__header--transparent{background-color:transparent;box-shadow:none}.mdl-layout__header--seamed,.mdl-layout__header--scroll{box-shadow:none}.mdl-layout__header--waterfall{box-shadow:none;overflow:hidden}.mdl-layout__header--waterfall.is-casting-shadow{box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12)}.mdl-layout__header--waterfall.mdl-layout__header--waterfall-hide-top{-ms-flex-pack:end;-webkit-box-pack:end;justify-content:flex-end}.mdl-layout__header-row{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:row;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-negative:0;flex-shrink:0;box-sizing:border-box;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-align:center;-webkit-box-align:center;align-items:center;height:64px;margin:0;padding:0 40px 0 80px}.mdl-layout--no-drawer-button .mdl-layout__header-row{padding-left:40px}@media screen and (min-width: 1025px){.mdl-layout--no-desktop-drawer-button .mdl-layout__header-row{padding-left:40px}}@media screen and (max-width: 1024px){.mdl-layout__header-row{height:56px;padding:0 16px 0 72px}.mdl-layout--no-drawer-button .mdl-layout__header-row{padding-left:16px}}.mdl-layout__header-row>*{-ms-flex-negative:0;flex-shrink:0}.mdl-layout__header--scroll .mdl-layout__header-row{width:100%}.mdl-layout__header-row .mdl-navigation{margin:0;padding:0;height:64px;-ms-flex-direction:row;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-ms-flex-align:center;-webkit-box-align:center;align-items:center}@media screen and (max-width: 1024px){.mdl-layout__header-row .mdl-navigation{height:56px}}.mdl-layout__header-row .mdl-navigation__link{display:block;color:#fff;line-height:64px;padding:0 24px}@media screen and (max-width: 1024px){.mdl-layout__header-row .mdl-navigation__link{line-height:56px;padding:0 16px}}.mdl-layout__obfuscator{background-color:transparent;position:absolute;top:0;left:0;height:100%;width:100%;z-index:4;visibility:hidden;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.mdl-layout__obfuscator.is-visible{background-color:rgba(0,0,0,0.5);visibility:visible}@supports (pointer-events: auto){.mdl-layout__obfuscator{background-color:rgba(0,0,0,0.5);opacity:0;-webkit-transition-property:opacity;transition-property:opacity;visibility:visible;pointer-events:none}.mdl-layout__obfuscator.is-visible{pointer-events:auto;opacity:1}}.mdl-layout__content{-ms-flex:0 1 auto;position:relative;display:inline-block;overflow-y:auto;overflow-x:hidden;-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1;z-index:1;-webkit-overflow-scrolling:touch}.mdl-layout--fixed-drawer>.mdl-layout__content{margin-left:240px}.mdl-layout__container.has-scrolling-header .mdl-layout__content{overflow:visible}@media screen and (max-width: 1024px){.mdl-layout--fixed-drawer>.mdl-layout__content{margin-left:0}.mdl-layout__container.has-scrolling-header .mdl-layout__content{overflow-y:auto;overflow-x:hidden}}.mdl-layout__tab-bar{height:96px;margin:0;width:calc(100% - 112px);padding:0 0 0 56px;display:-ms-flexbox;display:-webkit-box;display:flex;background-color:#4285f4;overflow-y:hidden;overflow-x:scroll}.mdl-layout__tab-bar::-webkit-scrollbar{display:none}.mdl-layout--no-drawer-button .mdl-layout__tab-bar{padding-left:16px;width:calc(100% - 32px)}@media screen and (min-width: 1025px){.mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar{padding-left:16px;width:calc(100% - 32px)}}@media screen and (max-width: 1024px){.mdl-layout__tab-bar{width:calc(100% - 60px);padding:0 0 0 60px}.mdl-layout--no-drawer-button .mdl-layout__tab-bar{width:calc(100% - 8px);padding-left:4px}}.mdl-layout--fixed-tabs .mdl-layout__tab-bar{padding:0;overflow:hidden;width:100%}.mdl-layout__tab-bar-container{position:relative;height:48px;width:100%;border:none;margin:0;z-index:2;-ms-flex-positive:0;-webkit-box-flex:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.mdl-layout__container>.mdl-layout__tab-bar-container{position:absolute;top:0;left:0}.mdl-layout__tab-bar-button{display:inline-block;position:absolute;top:0;height:48px;width:56px;z-index:4;text-align:center;background-color:#4285f4;color:transparent;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button,.mdl-layout--no-drawer-button .mdl-layout__tab-bar-button{width:16px}.mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button .material-icons,.mdl-layout--no-drawer-button .mdl-layout__tab-bar-button .material-icons{position:relative;left:-4px}@media screen and (max-width: 1024px){.mdl-layout__tab-bar-button{width:60px}}.mdl-layout--fixed-tabs .mdl-layout__tab-bar-button{display:none}.mdl-layout__tab-bar-button .material-icons{line-height:48px}.mdl-layout__tab-bar-button.is-active{color:#fff}.mdl-layout__tab-bar-left-button{left:0}.mdl-layout__tab-bar-right-button{right:0}.mdl-layout__tab{margin:0;border:none;padding:0 24px;float:left;position:relative;display:block;-ms-flex-positive:0;-webkit-box-flex:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;text-decoration:none;height:48px;line-height:48px;text-align:center;font-weight:500;font-size:14px;text-transform:uppercase;color:rgba(255,255,255,0.6);overflow:hidden}@media screen and (max-width: 1024px){.mdl-layout__tab{padding:0 12px}}.mdl-layout--fixed-tabs .mdl-layout__tab{float:none;-ms-flex-positive:1;-webkit-box-flex:1;flex-grow:1;padding:0}.mdl-layout.is-upgraded .mdl-layout__tab.is-active{color:#fff}.mdl-layout.is-upgraded .mdl-layout__tab.is-active::after{height:2px;width:100%;display:block;content:" ";bottom:0;left:0;position:absolute;background:#ffd740;-webkit-animation:border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;animation:border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;-webkit-transition:all 1s cubic-bezier(0.4, 0, 1, 1);transition:all 1s cubic-bezier(0.4, 0, 1, 1)}.mdl-layout__tab .mdl-layout__tab-ripple-container{display:block;position:absolute;height:100%;width:100%;left:0;top:0;z-index:1;overflow:hidden}.mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple{background-color:#fff}.mdl-layout__tab-panel{display:block}.mdl-layout.is-upgraded .mdl-layout__tab-panel{display:none}.mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active{display:block}.mdl-radio{position:relative;font-size:16px;line-height:24px;display:inline-block;vertical-align:middle;box-sizing:border-box;height:24px;margin:0;padding-left:0}.mdl-radio.is-upgraded{padding-left:24px}.mdl-radio__button{line-height:24px}.mdl-radio.is-upgraded .mdl-radio__button{position:absolute;width:0;height:0;margin:0;padding:0;opacity:0;-ms-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:none}.mdl-radio__outer-circle{position:absolute;top:4px;left:0;display:inline-block;box-sizing:border-box;width:16px;height:16px;margin:0;cursor:pointer;border:2px solid rgba(0,0,0,0.54);border-radius:50%;z-index:2}.mdl-radio.is-checked .mdl-radio__outer-circle{border:2px solid #4285f4}.mdl-radio__outer-circle fieldset[disabled] .mdl-radio,.mdl-radio.is-disabled .mdl-radio__outer-circle{border:2px solid rgba(0,0,0,0.26);cursor:auto}.mdl-radio__inner-circle{position:absolute;z-index:1;margin:0;top:8px;left:4px;box-sizing:border-box;width:8px;height:8px;cursor:pointer;-webkit-transition-duration:.28s;transition-duration:.28s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform, -webkit-transform;transition-property:transform,-webkit-transform;-webkit-transform:scale(0, 0);transform:scale(0, 0);border-radius:50%;background:#4285f4}.mdl-radio.is-checked .mdl-radio__inner-circle{-webkit-transform:scale(1, 1);transform:scale(1, 1)}fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,.mdl-radio.is-disabled .mdl-radio__inner-circle{background:rgba(0,0,0,0.26);cursor:auto}.mdl-radio.is-focused .mdl-radio__inner-circle{box-shadow:0 0 0 10px rgba(0,0,0,0.1)}.mdl-radio__label{cursor:pointer}fieldset[disabled] .mdl-radio .mdl-radio__label,.mdl-radio.is-disabled .mdl-radio__label{color:rgba(0,0,0,0.26);cursor:auto}.mdl-radio__ripple-container{position:absolute;z-index:2;top:-9px;left:-13px;box-sizing:border-box;width:42px;height:42px;border-radius:50%;cursor:pointer;overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(circle, #fff, #000)}.mdl-radio__ripple-container .mdl-ripple{background:#4285f4}fieldset[disabled] .mdl-radio .mdl-radio__ripple-container,.mdl-radio.is-disabled .mdl-radio__ripple-container{cursor:auto}fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,.mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple{background:0 0}_:-ms-input-placeholder,:root .mdl-slider.mdl-slider.is-upgraded{-ms-appearance:none;height:32px;margin:0}.mdl-slider{width:calc(100% - 40px);margin:0 20px}.mdl-slider.is-upgraded{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:2px;background:0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0;padding:0;color:#4285f4;-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;z-index:1;cursor:pointer}.mdl-slider.is-upgraded::-moz-focus-outer{border:0}.mdl-slider.is-upgraded::-ms-tooltip{display:none}.mdl-slider.is-upgraded::-webkit-slider-runnable-track{background:0 0}.mdl-slider.is-upgraded::-moz-range-track{background:0 0;border:none}.mdl-slider.is-upgraded::-ms-track{background:0 0;color:transparent;height:2px;width:100%;border:none}.mdl-slider.is-upgraded::-ms-fill-lower{padding:0;background:linear-gradient(to right, transparent, transparent 16px, #4285f4 16px, #4285f4 0)}.mdl-slider.is-upgraded::-ms-fill-upper{padding:0;background:linear-gradient(to left, transparent, transparent 16px, rgba(0,0,0,0.26) 16px, rgba(0,0,0,0.26) 0)}.mdl-slider.is-upgraded::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;box-sizing:border-box;border-radius:50%;background:#4285f4;border:none;-webkit-transition:border 0.18s cubic-bezier(0.4, 0, 0.2, 1),box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1),background 0.28s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);transition:border 0.18s cubic-bezier(0.4, 0, 0.2, 1),box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1),background 0.28s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.18s cubic-bezier(0.4, 0, 0.2, 1),border 0.18s cubic-bezier(0.4, 0, 0.2, 1),box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1),background 0.28s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.18s cubic-bezier(0.4, 0, 0.2, 1),border 0.18s cubic-bezier(0.4, 0, 0.2, 1),box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1),background 0.28s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1)}.mdl-slider.is-upgraded::-moz-range-thumb{-moz-appearance:none;width:12px;height:12px;box-sizing:border-box;border-radius:50%;background-image:none;background:#4285f4;border:none}.mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(66,133,244,0.26)}.mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(66,133,244,0.26)}.mdl-slider.is-upgraded:active::-webkit-slider-thumb{background-image:none;background:#4285f4;-webkit-transform:scale(1.5);transform:scale(1.5)}.mdl-slider.is-upgraded:active::-moz-range-thumb{background-image:none;background:#4285f4;transform:scale(1.5)}.mdl-slider.is-upgraded::-ms-thumb{width:32px;height:32px;border:none;border-radius:50%;background:#4285f4;transform:scale(0.375);-webkit-transition:background 0.28s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);transition:background 0.28s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.18s cubic-bezier(0.4, 0, 0.2, 1),background 0.28s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.18s cubic-bezier(0.4, 0, 0.2, 1),background 0.28s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1)}.mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side, #4285f4 0%, #4285f4 37.5%, rgba(66,133,244,0.26) 37.5%, rgba(66,133,244,0.26) 100%);transform:scale(1)}.mdl-slider.is-upgraded:active::-ms-thumb{background:#4285f4;transform:scale(0.5625)}.mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb{border:2px solid rgba(0,0,0,0.26);background:0 0}.mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb{border:2px solid rgba(0,0,0,0.26);background:0 0}.mdl-slider.is-upgraded.is-lowest-value+.mdl-slider__background-flex>.mdl-slider__background-upper{left:6px}.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(0,0,0,0.12);background:rgba(0,0,0,0.12)}.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(0,0,0,0.12);background:rgba(0,0,0,0.12)}.mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb{border:1.6px solid rgba(0,0,0,0.26);-webkit-transform:scale(1.5);transform:scale(1.5)}.mdl-slider.is-upgraded.is-lowest-value:active+.mdl-slider__background-flex>.mdl-slider__background-upper{left:9px}.mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb{border:1.5px solid rgba(0,0,0,0.26);transform:scale(1.5)}.mdl-slider.is-upgraded.is-lowest-value::-ms-thumb{background:radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0,0.26) 66.67%, rgba(0,0,0,0.26) 100%)}.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side, rgba(0,0,0,0.12) 0%, rgba(0,0,0,0.12) 25%, rgba(0,0,0,0.26) 25%, rgba(0,0,0,0.26) 37.5%, rgba(0,0,0,0.12) 37.5%, rgba(0,0,0,0.12) 100%);transform:scale(1)}.mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb{transform:scale(0.5625);background:radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0,0.26) 77.78%, rgba(0,0,0,0.26) 100%)}.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower{background:0 0}.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper{margin-left:6px}.mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper{margin-left:9px}.mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,.mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,.mdl-slider.is-upgraded:disabled::-webkit-slider-thumb{-webkit-transform:scale(0.667);transform:scale(0.667);background:rgba(0,0,0,0.26)}.mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,.mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,.mdl-slider.is-upgraded:disabled::-moz-range-thumb{transform:scale(0.667);background:rgba(0,0,0,0.26)}.mdl-slider.is-upgraded:disabled+.mdl-slider__background-flex>.mdl-slider__background-lower{background-color:rgba(0,0,0,0.26);left:-6px}.mdl-slider.is-upgraded:disabled+.mdl-slider__background-flex>.mdl-slider__background-upper{left:6px}.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb{border:3px solid rgba(0,0,0,0.26);background:0 0;-webkit-transform:scale(0.667);transform:scale(0.667)}.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb{border:3px solid rgba(0,0,0,0.26);background:0 0;transform:scale(0.667)}.mdl-slider.is-upgraded.is-lowest-value:disabled:active+.mdl-slider__background-flex>.mdl-slider__background-upper{left:6px}.mdl-slider.is-upgraded:disabled:focus::-ms-thumb,.mdl-slider.is-upgraded:disabled:active::-ms-thumb,.mdl-slider.is-upgraded:disabled::-ms-thumb{transform:scale(0.25);background:rgba(0,0,0,0.26)}.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb{transform:scale(0.25);background:radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0,0.26) 50%, rgba(0,0,0,0.26) 100%)}.mdl-slider.is-upgraded:disabled::-ms-fill-lower{margin-right:6px;background:linear-gradient(to right, transparent, transparent 25px, rgba(0,0,0,0.26) 25px, rgba(0,0,0,0.26) 0)}.mdl-slider.is-upgraded:disabled::-ms-fill-upper{margin-left:6px}.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper{margin-left:6px}.mdl-slider__ie-container{height:18px;overflow:visible;border:none;margin:none;padding:none}.mdl-slider__container{height:18px;position:relative;-ms-flex-direction:row;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.mdl-slider__container,.mdl-slider__background-flex{background:0 0;display:-ms-flexbox;display:-webkit-box;display:flex}.mdl-slider__background-flex{position:absolute;height:2px;width:calc(100% - 52px);top:50%;left:0;margin:0 26px;overflow:hidden;border:0;padding:0;-webkit-transform:translate(0, -1px);transform:translate(0, -1px)}.mdl-slider__background-lower{background:#4285f4}.mdl-slider__background-lower,.mdl-slider__background-upper{-ms-flex:0;-webkit-box-flex:0;flex:0;position:relative;border:0;padding:0}.mdl-slider__background-upper{background:rgba(0,0,0,0.26);-webkit-transition:left 0.18s cubic-bezier(0.4, 0, 0.2, 1);transition:left 0.18s cubic-bezier(0.4, 0, 0.2, 1)}.mdl-snackbar{position:fixed;bottom:0;left:50%;cursor:default;background-color:#323232;z-index:3;display:block;display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-pack:justify;-webkit-box-pack:justify;justify-content:space-between;font-family:"Roboto","Helvetica","Arial",sans-serif;will-change:transform;-webkit-transform:translate(0, 80px);transform:translate(0, 80px);-webkit-transition:-webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1);transition:transform 0.25s cubic-bezier(0.4, 0, 1, 1);transition:transform 0.25s cubic-bezier(0.4, 0, 1, 1),-webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1);transition:transform 0.25s cubic-bezier(0.4, 0, 1, 1),-webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1);pointer-events:none}@media (max-width: 479px){.mdl-snackbar{width:100%;left:0;min-height:48px;max-height:80px}}@media (min-width: 480px){.mdl-snackbar{min-width:288px;max-width:568px;border-radius:2px;-webkit-transform:translate(-50%, 80px);transform:translate(-50%, 80px)}}.mdl-snackbar--active{-webkit-transform:translate(0, 0);transform:translate(0, 0);pointer-events:auto;-webkit-transition:-webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1);transition:-webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.25s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.25s cubic-bezier(0, 0, 0.2, 1),-webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.25s cubic-bezier(0, 0, 0.2, 1),-webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1)}@media (min-width: 480px){.mdl-snackbar--active{-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0)}}.mdl-snackbar__text{padding:14px 12px 14px 24px;vertical-align:middle;color:#fff;float:left}.mdl-snackbar__action{background:0 0;border:none;color:#ffd740;float:right;padding:14px 24px 14px 12px;font-family:"Roboto","Helvetica","Arial",sans-serif;font-size:14px;font-weight:500;text-transform:uppercase;line-height:1;letter-spacing:0;overflow:hidden;outline:none;opacity:0;pointer-events:none;cursor:pointer;text-decoration:none;text-align:center;-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.mdl-snackbar__action::-moz-focus-inner{border:0}.mdl-snackbar__action:not([aria-hidden]){opacity:1;pointer-events:auto}.mdl-spinner{display:inline-block;position:relative;width:28px;height:28px}.mdl-spinner:not(.is-upgraded).is-active:after{content:"Loading..."}.mdl-spinner.is-upgraded.is-active{-webkit-animation:mdl-spinner__container-rotate 1568.23529412ms linear infinite;animation:mdl-spinner__container-rotate 1568.23529412ms linear infinite}@-webkit-keyframes mdl-spinner__container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes mdl-spinner__container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.mdl-spinner__layer{position:absolute;width:100%;height:100%;opacity:0}.mdl-spinner__layer-1{border-color:#42a5f5}.mdl-spinner--single-color .mdl-spinner__layer-1{border-color:#4285f4}.mdl-spinner.is-active .mdl-spinner__layer-1{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdl-spinner__layer-2{border-color:#f44336}.mdl-spinner--single-color .mdl-spinner__layer-2{border-color:#4285f4}.mdl-spinner.is-active .mdl-spinner__layer-2{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdl-spinner__layer-3{border-color:#fdd835}.mdl-spinner--single-color .mdl-spinner__layer-3{border-color:#4285f4}.mdl-spinner.is-active .mdl-spinner__layer-3{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdl-spinner__layer-4{border-color:#4caf50}.mdl-spinner--single-color .mdl-spinner__layer-4{border-color:#4285f4}.mdl-spinner.is-active .mdl-spinner__layer-4{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes mdl-spinner__fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@keyframes mdl-spinner__fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes mdl-spinner__layer-1-fade-in-out{from,25%{opacity:.99}26%,89%{opacity:0}90%,100%{opacity:.99}}@keyframes mdl-spinner__layer-1-fade-in-out{from,25%{opacity:.99}26%,89%{opacity:0}90%,100%{opacity:.99}}@-webkit-keyframes mdl-spinner__layer-2-fade-in-out{from,15%{opacity:0}25%,50%{opacity:.99}51%{opacity:0}}@keyframes mdl-spinner__layer-2-fade-in-out{from,15%{opacity:0}25%,50%{opacity:.99}51%{opacity:0}}@-webkit-keyframes mdl-spinner__layer-3-fade-in-out{from,40%{opacity:0}50%,75%{opacity:.99}76%{opacity:0}}@keyframes mdl-spinner__layer-3-fade-in-out{from,40%{opacity:0}50%,75%{opacity:.99}76%{opacity:0}}@-webkit-keyframes mdl-spinner__layer-4-fade-in-out{from,65%{opacity:0}75%,90%{opacity:.99}100%{opacity:0}}@keyframes mdl-spinner__layer-4-fade-in-out{from,65%{opacity:0}75%,90%{opacity:.99}100%{opacity:0}}.mdl-spinner__gap-patch{position:absolute;box-sizing:border-box;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.mdl-spinner__gap-patch .mdl-spinner__circle{width:1000%;left:-450%}.mdl-spinner__circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.mdl-spinner__circle-clipper.mdl-spinner__left{float:left}.mdl-spinner__circle-clipper.mdl-spinner__right{float:right}.mdl-spinner__circle-clipper .mdl-spinner__circle{width:200%}.mdl-spinner__circle{box-sizing:border-box;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0;left:0}.mdl-spinner__left .mdl-spinner__circle{border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle{-webkit-animation:mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdl-spinner__right .mdl-spinner__circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle{-webkit-animation:mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes mdl-spinner__left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@keyframes mdl-spinner__left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes mdl-spinner__right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}@keyframes mdl-spinner__right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}.mdl-switch{position:relative;z-index:1;vertical-align:middle;display:inline-block;box-sizing:border-box;width:100%;height:24px;margin:0;padding:0;overflow:visible;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdl-switch.is-upgraded{padding-left:28px}.mdl-switch__input{line-height:24px}.mdl-switch.is-upgraded .mdl-switch__input{position:absolute;width:0;height:0;margin:0;padding:0;opacity:0;-ms-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:none}.mdl-switch__track{background:rgba(0,0,0,0.26);position:absolute;left:0;top:5px;height:14px;width:36px;border-radius:14px;cursor:pointer}.mdl-switch.is-checked .mdl-switch__track{background:rgba(66,133,244,0.5)}.mdl-switch__track fieldset[disabled] .mdl-switch,.mdl-switch.is-disabled .mdl-switch__track{background:rgba(0,0,0,0.12);cursor:auto}.mdl-switch__thumb{background:#fafafa;position:absolute;left:0;top:2px;height:20px;width:20px;border-radius:50%;cursor:pointer;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12);-webkit-transition-duration:.28s;transition-duration:.28s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition-property:left;transition-property:left}.mdl-switch.is-checked .mdl-switch__thumb{background:#4285f4;left:16px;box-shadow:0 3px 4px 0 rgba(0,0,0,0.14),0 3px 3px -2px rgba(0,0,0,0.2),0 1px 8px 0 rgba(0,0,0,0.12)}.mdl-switch__thumb fieldset[disabled] .mdl-switch,.mdl-switch.is-disabled .mdl-switch__thumb{background:#bdbdbd;cursor:auto}.mdl-switch__focus-helper{position:absolute;top:50%;left:50%;-webkit-transform:translate(-4px, -4px);transform:translate(-4px, -4px);display:inline-block;box-sizing:border-box;width:8px;height:8px;border-radius:50%;background-color:transparent}.mdl-switch.is-focused .mdl-switch__focus-helper{box-shadow:0 0 0 20px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}.mdl-switch.is-focused.is-checked .mdl-switch__focus-helper{box-shadow:0 0 0 20px rgba(66,133,244,0.26);background-color:rgba(66,133,244,0.26)}.mdl-switch__label{position:relative;cursor:pointer;font-size:16px;line-height:24px;margin:0;left:24px}.mdl-switch__label fieldset[disabled] .mdl-switch,.mdl-switch.is-disabled .mdl-switch__label{color:#bdbdbd;cursor:auto}.mdl-switch__ripple-container{position:absolute;z-index:2;top:-12px;left:-14px;box-sizing:border-box;width:48px;height:48px;border-radius:50%;cursor:pointer;overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(circle, #fff, #000);-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:step-end;transition-timing-function:step-end;-webkit-transition-property:left;transition-property:left}.mdl-switch__ripple-container .mdl-ripple{background:#4285f4}.mdl-switch__ripple-container fieldset[disabled] .mdl-switch,.mdl-switch.is-disabled .mdl-switch__ripple-container{cursor:auto}fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,.mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple{background:0 0}.mdl-switch.is-checked .mdl-switch__ripple-container{left:2px}.mdl-tabs{display:block;width:100%}.mdl-tabs__tab-bar{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-direction:row;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-ms-flex-pack:center;-webkit-box-pack:center;justify-content:center;-ms-flex-line-pack:justify;align-content:space-between;-ms-flex-align:start;-webkit-box-align:start;align-items:flex-start;height:48px;padding:0;margin:0;border-bottom:1px solid #e0e0e0}.mdl-tabs__tab{margin:0;border:none;padding:0 24px;float:left;position:relative;display:block;text-decoration:none;height:48px;line-height:48px;text-align:center;font-weight:500;font-size:14px;text-transform:uppercase;color:rgba(0,0,0,0.54);overflow:hidden}.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active{color:rgba(0,0,0,0.87)}.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after{height:2px;width:100%;display:block;content:" ";bottom:0;left:0;position:absolute;background:#4285f4;-webkit-animation:border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;animation:border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;-webkit-transition:all 1s cubic-bezier(0.4, 0, 1, 1);transition:all 1s cubic-bezier(0.4, 0, 1, 1)}.mdl-tabs__tab .mdl-tabs__ripple-container{display:block;position:absolute;height:100%;width:100%;left:0;top:0;z-index:1;overflow:hidden}.mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple{background:#4285f4}.mdl-tabs__panel{display:block}.mdl-tabs.is-upgraded .mdl-tabs__panel{display:none}.mdl-tabs.is-upgraded .mdl-tabs__panel.is-active{display:block}@-webkit-keyframes border-expand{0%{opacity:0;width:0}100%{opacity:1;width:100%}}@keyframes border-expand{0%{opacity:0;width:0}100%{opacity:1;width:100%}}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}.mdl-textfield .mdl-button{position:absolute;bottom:20px}.mdl-textfield--align-right{text-align:right}.mdl-textfield--full-width{width:100%}.mdl-textfield--expandable{min-width:32px;width:auto;min-height:32px}.mdl-textfield--expandable .mdl-button--icon{top:16px}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,0.12);display:block;font-size:16px;font-family:"Helvetica","Arial",sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.mdl-textfield__input[type="number"]{-moz-appearance:textfield}.mdl-textfield__input[type="number"]::-webkit-inner-spin-button,.mdl-textfield__input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mdl-textfield.is-focused .mdl-textfield__input{outline:none}.mdl-textfield.is-invalid .mdl-textfield__input{border-color:#d50000;box-shadow:none}fieldset[disabled] .mdl-textfield .mdl-textfield__input,.mdl-textfield.is-disabled .mdl-textfield__input{background-color:transparent;border-bottom:1px dotted rgba(0,0,0,0.12);color:rgba(0,0,0,0.26)}.mdl-textfield textarea.mdl-textfield__input{display:block}.mdl-textfield__label{bottom:0;color:rgba(0,0,0,0.26);font-size:16px;left:0;right:0;pointer-events:none;position:absolute;display:block;top:24px;width:100%;overflow:hidden;white-space:nowrap;text-align:left}.mdl-textfield.is-dirty .mdl-textfield__label,.mdl-textfield.has-placeholder .mdl-textfield__label{visibility:hidden}.mdl-textfield--floating-label .mdl-textfield__label{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label{-webkit-transition:none;transition:none}fieldset[disabled] .mdl-textfield .mdl-textfield__label,.mdl-textfield.is-disabled.is-disabled .mdl-textfield__label{color:rgba(0,0,0,0.26)}.mdl-textfield--floating-label.is-focused .mdl-textfield__label,.mdl-textfield--floating-label.is-dirty .mdl-textfield__label,.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label{color:#4285f4;font-size:12px;top:4px;visibility:visible}.mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label,.mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label,.mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label{top:-16px}.mdl-textfield--floating-label.is-invalid .mdl-textfield__label{color:#d50000;font-size:12px}.mdl-textfield__label:after{background-color:#4285f4;bottom:20px;content:'';height:2px;left:45%;position:absolute;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);visibility:hidden;width:10px}.mdl-textfield.is-focused .mdl-textfield__label:after{left:0;visibility:visible;width:100%}.mdl-textfield.is-invalid .mdl-textfield__label:after{background-color:#d50000}.mdl-textfield__error{color:#d50000;position:absolute;font-size:12px;margin-top:3px;visibility:hidden;display:block}.mdl-textfield.is-invalid .mdl-textfield__error{visibility:visible}.mdl-textfield__expandable-holder{display:inline-block;position:relative;margin-left:32px;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);display:inline-block;max-width:.1px}.mdl-textfield.is-focused .mdl-textfield__expandable-holder,.mdl-textfield.is-dirty .mdl-textfield__expandable-holder{max-width:600px}.mdl-textfield__expandable-holder .mdl-textfield__label:after{bottom:0}.mdl-tooltip{-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:top center;transform-origin:top center;z-index:999;background:rgba(97,97,97,0.9);border-radius:2px;color:#fff;display:inline-block;font-size:10px;font-weight:500;line-height:14px;max-width:170px;position:fixed;top:-500px;left:-500px;padding:8px;text-align:center}.mdl-tooltip.is-active{-webkit-animation:pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards;animation:pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards}.mdl-tooltip--large{line-height:14px;font-size:14px;padding:16px}@-webkit-keyframes pulse{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}50%{-webkit-transform:scale(0.99);transform:scale(0.99)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1;visibility:visible}}@keyframes pulse{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}50%{-webkit-transform:scale(0.99);transform:scale(0.99)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1;visibility:visible}}.mdl-shadow--2dp{box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12)}.mdl-shadow--3dp{box-shadow:0 3px 4px 0 rgba(0,0,0,0.14),0 3px 3px -2px rgba(0,0,0,0.2),0 1px 8px 0 rgba(0,0,0,0.12)}.mdl-shadow--4dp{box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.2)}.mdl-shadow--6dp{box-shadow:0 6px 10px 0 rgba(0,0,0,0.14),0 1px 18px 0 rgba(0,0,0,0.12),0 3px 5px -1px rgba(0,0,0,0.2)}.mdl-shadow--8dp{box-shadow:0 8px 10px 1px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2)}.mdl-shadow--16dp{box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -5px rgba(0,0,0,0.2)}.mdl-shadow--24dp{box-shadow:0 9px 46px 8px rgba(0,0,0,0.14),0 11px 15px -7px rgba(0,0,0,0.12),0 24px 38px 3px rgba(0,0,0,0.2)}.mdl-grid{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin:0 auto;-ms-flex-align:stretch;-webkit-box-align:stretch;align-items:stretch}.mdl-grid.mdl-grid--no-spacing{padding:0}.mdl-cell{box-sizing:border-box}.mdl-cell--top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.mdl-cell--middle{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.mdl-cell--bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.mdl-cell--stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.mdl-grid.mdl-grid--no-spacing>.mdl-cell{margin:0}.mdl-cell--order-1{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.mdl-cell--order-2{-ms-flex-order:2;-webkit-box-ordinal-group:3;order:2}.mdl-cell--order-3{-ms-flex-order:3;-webkit-box-ordinal-group:4;order:3}.mdl-cell--order-4{-ms-flex-order:4;-webkit-box-ordinal-group:5;order:4}.mdl-cell--order-5{-ms-flex-order:5;-webkit-box-ordinal-group:6;order:5}.mdl-cell--order-6{-ms-flex-order:6;-webkit-box-ordinal-group:7;order:6}.mdl-cell--order-7{-ms-flex-order:7;-webkit-box-ordinal-group:8;order:7}.mdl-cell--order-8{-ms-flex-order:8;-webkit-box-ordinal-group:9;order:8}.mdl-cell--order-9{-ms-flex-order:9;-webkit-box-ordinal-group:10;order:9}.mdl-cell--order-10{-ms-flex-order:10;-webkit-box-ordinal-group:11;order:10}.mdl-cell--order-11{-ms-flex-order:11;-webkit-box-ordinal-group:12;order:11}.mdl-cell--order-12{-ms-flex-order:12;-webkit-box-ordinal-group:13;order:12}@media (max-width: 479px){.mdl-grid{padding:8px}.mdl-cell{margin:8px;width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell{width:100%}.mdl-cell--hide-phone{display:none !important}.mdl-cell--order-1-phone.mdl-cell--order-1-phone{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.mdl-cell--order-2-phone.mdl-cell--order-2-phone{-ms-flex-order:2;-webkit-box-ordinal-group:3;order:2}.mdl-cell--order-3-phone.mdl-cell--order-3-phone{-ms-flex-order:3;-webkit-box-ordinal-group:4;order:3}.mdl-cell--order-4-phone.mdl-cell--order-4-phone{-ms-flex-order:4;-webkit-box-ordinal-group:5;order:4}.mdl-cell--order-5-phone.mdl-cell--order-5-phone{-ms-flex-order:5;-webkit-box-ordinal-group:6;order:5}.mdl-cell--order-6-phone.mdl-cell--order-6-phone{-ms-flex-order:6;-webkit-box-ordinal-group:7;order:6}.mdl-cell--order-7-phone.mdl-cell--order-7-phone{-ms-flex-order:7;-webkit-box-ordinal-group:8;order:7}.mdl-cell--order-8-phone.mdl-cell--order-8-phone{-ms-flex-order:8;-webkit-box-ordinal-group:9;order:8}.mdl-cell--order-9-phone.mdl-cell--order-9-phone{-ms-flex-order:9;-webkit-box-ordinal-group:10;order:9}.mdl-cell--order-10-phone.mdl-cell--order-10-phone{-ms-flex-order:10;-webkit-box-ordinal-group:11;order:10}.mdl-cell--order-11-phone.mdl-cell--order-11-phone{-ms-flex-order:11;-webkit-box-ordinal-group:12;order:11}.mdl-cell--order-12-phone.mdl-cell--order-12-phone{-ms-flex-order:12;-webkit-box-ordinal-group:13;order:12}.mdl-cell--1-col,.mdl-cell--1-col-phone.mdl-cell--1-col-phone{width:calc(25% - 16px)}.mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-phone.mdl-cell--1-col-phone{width:25%}.mdl-cell--2-col,.mdl-cell--2-col-phone.mdl-cell--2-col-phone{width:calc(50% - 16px)}.mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-phone.mdl-cell--2-col-phone{width:50%}.mdl-cell--3-col,.mdl-cell--3-col-phone.mdl-cell--3-col-phone{width:calc(75% - 16px)}.mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-phone.mdl-cell--3-col-phone{width:75%}.mdl-cell--4-col,.mdl-cell--4-col-phone.mdl-cell--4-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-phone.mdl-cell--4-col-phone{width:100%}.mdl-cell--5-col,.mdl-cell--5-col-phone.mdl-cell--5-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-phone.mdl-cell--5-col-phone{width:100%}.mdl-cell--6-col,.mdl-cell--6-col-phone.mdl-cell--6-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-phone.mdl-cell--6-col-phone{width:100%}.mdl-cell--7-col,.mdl-cell--7-col-phone.mdl-cell--7-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-phone.mdl-cell--7-col-phone{width:100%}.mdl-cell--8-col,.mdl-cell--8-col-phone.mdl-cell--8-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-phone.mdl-cell--8-col-phone{width:100%}.mdl-cell--9-col,.mdl-cell--9-col-phone.mdl-cell--9-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-phone.mdl-cell--9-col-phone{width:100%}.mdl-cell--10-col,.mdl-cell--10-col-phone.mdl-cell--10-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-phone.mdl-cell--10-col-phone{width:100%}.mdl-cell--11-col,.mdl-cell--11-col-phone.mdl-cell--11-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-phone.mdl-cell--11-col-phone{width:100%}.mdl-cell--12-col,.mdl-cell--12-col-phone.mdl-cell--12-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-phone.mdl-cell--12-col-phone{width:100%}.mdl-cell--1-offset,.mdl-cell--1-offset-phone.mdl-cell--1-offset-phone{margin-left:calc(25% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--1-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--1-offset-phone.mdl-cell--1-offset-phone{margin-left:25%}.mdl-cell--2-offset,.mdl-cell--2-offset-phone.mdl-cell--2-offset-phone{margin-left:calc(50% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--2-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--2-offset-phone.mdl-cell--2-offset-phone{margin-left:50%}.mdl-cell--3-offset,.mdl-cell--3-offset-phone.mdl-cell--3-offset-phone{margin-left:calc(75% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--3-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--3-offset-phone.mdl-cell--3-offset-phone{margin-left:75%}}@media (min-width: 480px) and (max-width: 839px){.mdl-grid{padding:8px}.mdl-cell{margin:8px;width:calc(50% - 16px)}.mdl-grid--no-spacing>.mdl-cell{width:50%}.mdl-cell--hide-tablet{display:none !important}.mdl-cell--order-1-tablet.mdl-cell--order-1-tablet{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.mdl-cell--order-2-tablet.mdl-cell--order-2-tablet{-ms-flex-order:2;-webkit-box-ordinal-group:3;order:2}.mdl-cell--order-3-tablet.mdl-cell--order-3-tablet{-ms-flex-order:3;-webkit-box-ordinal-group:4;order:3}.mdl-cell--order-4-tablet.mdl-cell--order-4-tablet{-ms-flex-order:4;-webkit-box-ordinal-group:5;order:4}.mdl-cell--order-5-tablet.mdl-cell--order-5-tablet{-ms-flex-order:5;-webkit-box-ordinal-group:6;order:5}.mdl-cell--order-6-tablet.mdl-cell--order-6-tablet{-ms-flex-order:6;-webkit-box-ordinal-group:7;order:6}.mdl-cell--order-7-tablet.mdl-cell--order-7-tablet{-ms-flex-order:7;-webkit-box-ordinal-group:8;order:7}.mdl-cell--order-8-tablet.mdl-cell--order-8-tablet{-ms-flex-order:8;-webkit-box-ordinal-group:9;order:8}.mdl-cell--order-9-tablet.mdl-cell--order-9-tablet{-ms-flex-order:9;-webkit-box-ordinal-group:10;order:9}.mdl-cell--order-10-tablet.mdl-cell--order-10-tablet{-ms-flex-order:10;-webkit-box-ordinal-group:11;order:10}.mdl-cell--order-11-tablet.mdl-cell--order-11-tablet{-ms-flex-order:11;-webkit-box-ordinal-group:12;order:11}.mdl-cell--order-12-tablet.mdl-cell--order-12-tablet{-ms-flex-order:12;-webkit-box-ordinal-group:13;order:12}.mdl-cell--1-col,.mdl-cell--1-col-tablet.mdl-cell--1-col-tablet{width:calc(12.5% - 16px)}.mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-tablet.mdl-cell--1-col-tablet{width:12.5%}.mdl-cell--2-col,.mdl-cell--2-col-tablet.mdl-cell--2-col-tablet{width:calc(25% - 16px)}.mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-tablet.mdl-cell--2-col-tablet{width:25%}.mdl-cell--3-col,.mdl-cell--3-col-tablet.mdl-cell--3-col-tablet{width:calc(37.5% - 16px)}.mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-tablet.mdl-cell--3-col-tablet{width:37.5%}.mdl-cell--4-col,.mdl-cell--4-col-tablet.mdl-cell--4-col-tablet{width:calc(50% - 16px)}.mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-tablet.mdl-cell--4-col-tablet{width:50%}.mdl-cell--5-col,.mdl-cell--5-col-tablet.mdl-cell--5-col-tablet{width:calc(62.5% - 16px)}.mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-tablet.mdl-cell--5-col-tablet{width:62.5%}.mdl-cell--6-col,.mdl-cell--6-col-tablet.mdl-cell--6-col-tablet{width:calc(75% - 16px)}.mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-tablet.mdl-cell--6-col-tablet{width:75%}.mdl-cell--7-col,.mdl-cell--7-col-tablet.mdl-cell--7-col-tablet{width:calc(87.5% - 16px)}.mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-tablet.mdl-cell--7-col-tablet{width:87.5%}.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:100%}.mdl-cell--9-col,.mdl-cell--9-col-tablet.mdl-cell--9-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-tablet.mdl-cell--9-col-tablet{width:100%}.mdl-cell--10-col,.mdl-cell--10-col-tablet.mdl-cell--10-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-tablet.mdl-cell--10-col-tablet{width:100%}.mdl-cell--11-col,.mdl-cell--11-col-tablet.mdl-cell--11-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-tablet.mdl-cell--11-col-tablet{width:100%}.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:100%}.mdl-cell--1-offset,.mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet{margin-left:calc(12.5% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--1-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet{margin-left:12.5%}.mdl-cell--2-offset,.mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet{margin-left:calc(25% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--2-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet{margin-left:25%}.mdl-cell--3-offset,.mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet{margin-left:calc(37.5% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--3-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet{margin-left:37.5%}.mdl-cell--4-offset,.mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet{margin-left:calc(50% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--4-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet{margin-left:50%}.mdl-cell--5-offset,.mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet{margin-left:calc(62.5% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--5-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet{margin-left:62.5%}.mdl-cell--6-offset,.mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet{margin-left:calc(75% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--6-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet{margin-left:75%}.mdl-cell--7-offset,.mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet{margin-left:calc(87.5% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--7-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet{margin-left:87.5%}}@media (min-width: 840px){.mdl-grid{padding:8px}.mdl-cell{margin:8px;width:calc(33.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell{width:33.3333333333%}.mdl-cell--hide-desktop{display:none !important}.mdl-cell--order-1-desktop.mdl-cell--order-1-desktop{-ms-flex-order:1;-webkit-box-ordinal-group:2;order:1}.mdl-cell--order-2-desktop.mdl-cell--order-2-desktop{-ms-flex-order:2;-webkit-box-ordinal-group:3;order:2}.mdl-cell--order-3-desktop.mdl-cell--order-3-desktop{-ms-flex-order:3;-webkit-box-ordinal-group:4;order:3}.mdl-cell--order-4-desktop.mdl-cell--order-4-desktop{-ms-flex-order:4;-webkit-box-ordinal-group:5;order:4}.mdl-cell--order-5-desktop.mdl-cell--order-5-desktop{-ms-flex-order:5;-webkit-box-ordinal-group:6;order:5}.mdl-cell--order-6-desktop.mdl-cell--order-6-desktop{-ms-flex-order:6;-webkit-box-ordinal-group:7;order:6}.mdl-cell--order-7-desktop.mdl-cell--order-7-desktop{-ms-flex-order:7;-webkit-box-ordinal-group:8;order:7}.mdl-cell--order-8-desktop.mdl-cell--order-8-desktop{-ms-flex-order:8;-webkit-box-ordinal-group:9;order:8}.mdl-cell--order-9-desktop.mdl-cell--order-9-desktop{-ms-flex-order:9;-webkit-box-ordinal-group:10;order:9}.mdl-cell--order-10-desktop.mdl-cell--order-10-desktop{-ms-flex-order:10;-webkit-box-ordinal-group:11;order:10}.mdl-cell--order-11-desktop.mdl-cell--order-11-desktop{-ms-flex-order:11;-webkit-box-ordinal-group:12;order:11}.mdl-cell--order-12-desktop.mdl-cell--order-12-desktop{-ms-flex-order:12;-webkit-box-ordinal-group:13;order:12}.mdl-cell--1-col,.mdl-cell--1-col-desktop.mdl-cell--1-col-desktop{width:calc(8.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-desktop.mdl-cell--1-col-desktop{width:8.3333333333%}.mdl-cell--2-col,.mdl-cell--2-col-desktop.mdl-cell--2-col-desktop{width:calc(16.6666666667% - 16px)}.mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-desktop.mdl-cell--2-col-desktop{width:16.6666666667%}.mdl-cell--3-col,.mdl-cell--3-col-desktop.mdl-cell--3-col-desktop{width:calc(25% - 16px)}.mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-desktop.mdl-cell--3-col-desktop{width:25%}.mdl-cell--4-col,.mdl-cell--4-col-desktop.mdl-cell--4-col-desktop{width:calc(33.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-desktop.mdl-cell--4-col-desktop{width:33.3333333333%}.mdl-cell--5-col,.mdl-cell--5-col-desktop.mdl-cell--5-col-desktop{width:calc(41.6666666667% - 16px)}.mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-desktop.mdl-cell--5-col-desktop{width:41.6666666667%}.mdl-cell--6-col,.mdl-cell--6-col-desktop.mdl-cell--6-col-desktop{width:calc(50% - 16px)}.mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-desktop.mdl-cell--6-col-desktop{width:50%}.mdl-cell--7-col,.mdl-cell--7-col-desktop.mdl-cell--7-col-desktop{width:calc(58.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-desktop.mdl-cell--7-col-desktop{width:58.3333333333%}.mdl-cell--8-col,.mdl-cell--8-col-desktop.mdl-cell--8-col-desktop{width:calc(66.6666666667% - 16px)}.mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-desktop.mdl-cell--8-col-desktop{width:66.6666666667%}.mdl-cell--9-col,.mdl-cell--9-col-desktop.mdl-cell--9-col-desktop{width:calc(75% - 16px)}.mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-desktop.mdl-cell--9-col-desktop{width:75%}.mdl-cell--10-col,.mdl-cell--10-col-desktop.mdl-cell--10-col-desktop{width:calc(83.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-desktop.mdl-cell--10-col-desktop{width:83.3333333333%}.mdl-cell--11-col,.mdl-cell--11-col-desktop.mdl-cell--11-col-desktop{width:calc(91.6666666667% - 16px)}.mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-desktop.mdl-cell--11-col-desktop{width:91.6666666667%}.mdl-cell--12-col,.mdl-cell--12-col-desktop.mdl-cell--12-col-desktop{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-desktop.mdl-cell--12-col-desktop{width:100%}.mdl-cell--1-offset,.mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop{margin-left:calc(8.3333333333% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--1-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop{margin-left:8.3333333333%}.mdl-cell--2-offset,.mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop{margin-left:calc(16.6666666667% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--2-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop{margin-left:16.6666666667%}.mdl-cell--3-offset,.mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop{margin-left:calc(25% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--3-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop{margin-left:25%}.mdl-cell--4-offset,.mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop{margin-left:calc(33.3333333333% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--4-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop{margin-left:33.3333333333%}.mdl-cell--5-offset,.mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop{margin-left:calc(41.6666666667% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--5-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop{margin-left:41.6666666667%}.mdl-cell--6-offset,.mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop{margin-left:calc(50% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--6-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop{margin-left:50%}.mdl-cell--7-offset,.mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop{margin-left:calc(58.3333333333% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--7-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop{margin-left:58.3333333333%}.mdl-cell--8-offset,.mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop{margin-left:calc(66.6666666667% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--8-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop{margin-left:66.6666666667%}.mdl-cell--9-offset,.mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop{margin-left:calc(75% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--9-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop{margin-left:75%}.mdl-cell--10-offset,.mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop{margin-left:calc(83.3333333333% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--10-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop{margin-left:83.3333333333%}.mdl-cell--11-offset,.mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop{margin-left:calc(91.6666666667% + 8px)}.mdl-grid.mdl-grid--no-spacing>.mdl-cell--11-offset,.mdl-grid.mdl-grid--no-spacing>.mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop{margin-left:91.6666666667%}}body{margin:0}.styleguide-demo h1{margin:48px 24px 0}.styleguide-demo h1:after{content:'';display:block;width:100%;border-bottom:1px solid rgba(0,0,0,0.5);margin-top:24px}.styleguide-demo{opacity:0;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}.styleguide-masthead{height:256px;background:#212121;padding:115px 16px 0}.styleguide-container{position:relative;max-width:960px;width:100%}.styleguide-title{color:#fff;bottom:auto;position:relative;font-size:56px;font-weight:300;line-height:1;letter-spacing:-.02em}.styleguide-title:after{border-bottom:0}.styleguide-title span{font-weight:300}.mdl-styleguide .mdl-layout__drawer .mdl-navigation__link{padding:10px 24px}.demosLoaded .styleguide-demo{opacity:1}iframe{display:block;width:100%;border:none}iframe.heightSet{overflow:hidden}.demo-wrapper{margin:24px}.demo-wrapper iframe{border:1px solid rgba(0,0,0,0.5)}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,0.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container .search-choice .group-name,.chosen-container .chosen-single .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:normal;color:#999999}.chosen-container .search-choice .group-name:after,.chosen-container .chosen-single .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,0.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(//dgfy547layodx.cloudfront.net/assets/chosen-sprite-8aa69ee6b2376505578d758bfbbc52aec88fa5e591f1a7cabd8adfa80a7b613a.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(//dgfy547layodx.cloudfront.net/assets/chosen-sprite-8aa69ee6b2376505578d758bfbbc52aec88fa5e591f1a7cabd8adfa80a7b613a.png) no-repeat 0px 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type="text"]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(//dgfy547layodx.cloudfront.net/assets/chosen-sprite-8aa69ee6b2376505578d758bfbbc52aec88fa5e591f1a7cabd8adfa80a7b613a.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:bold;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type="text"]{margin:1px 0;padding:0;height:25px;outline:0;border:0 !important;background:transparent !important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eeeeee;background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(//dgfy547layodx.cloudfront.net/assets/chosen-sprite-8aa69ee6b2376505578d758bfbbc52aec88fa5e591f1a7cabd8adfa80a7b613a.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,0.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,0.3)}.chosen-container-active .chosen-choices li.search-field input[type="text"]{color:#222 !important}.chosen-disabled{opacity:0.5 !important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type="text"]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type="text"]{padding:4px 5px 4px 20px;background:#fff url(//dgfy547layodx.cloudfront.net/assets/chosen-sprite-8aa69ee6b2376505578d758bfbbc52aec88fa5e591f1a7cabd8adfa80a7b613a.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx){.chosen-rtl .chosen-search input[type="text"],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type="text"],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(//dgfy547layodx.cloudfront.net/assets/chosen-sprite@2x-1e349b80fba8c23b63656925fda8dfe3c5927b5d0d8a1672143416caacf460fb.png) !important;background-size:52px 37px !important;background-repeat:no-repeat !important}}.chosen-container{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container-single .chosen-single{background:-webkit-linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);background:linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%)}.chosen-container-single .chosen-search{background:url(//dgfy547layodx.cloudfront.net/assets/chosen-sprite-8aa69ee6b2376505578d758bfbbc52aec88fa5e591f1a7cabd8adfa80a7b613a.png) no-repeat 100% -20px}.chosen-container .chosen-results li.highlighted{background-image:-webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);background-image:linear-gradient(#3875d7 20%, #2a62bc 90%)}.chosen-container-multi .chosen-choices{background-image:-webkit-linear-gradient(#eee 1%, #fff 15%);background-image:linear-gradient(#eee 1%, #fff 15%)}.chosen-container-multi .chosen-choices li.search-choice{background-image:-webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%)}.chosen-container-multi .chosen-choices li.search-choice-disabled{background-image:-webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%)}.chosen-container-active.chosen-with-drop .chosen-single{background-image:-webkit-linear-gradient(#eee 20%, #fff 80%);background-image:linear-gradient(#eee 20%, #fff 80%)}.chosen-rtl .chosen-search input[type="text"]{background:url(//dgfy547layodx.cloudfront.net/assets/chosen-sprite-8aa69ee6b2376505578d758bfbbc52aec88fa5e591f1a7cabd8adfa80a7b613a.png) no-repeat -30px -20px}/*! jQuery UI - v1.12.1 - 2016-10-13 +* http://jqueryui.com +* Includes: core.css, autocomplete.css, menu.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default !important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #dddddd;background:#ffffff;color:#333333}.ui-widget-content a{color:#333333}.ui-widget-header{border:1px solid #dddddd;background:#e9e9e9;color:#333333;font-weight:bold}.ui-widget-header a{color:#333333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #cccccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#ffffff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#ffffff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#ffffff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaaaaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{box-shadow:0px 0px 5px #666666}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight .gh{color:#999999}.highlight .sr{color:#f6aa11}.highlight .go{color:#888888}.highlight .gp{color:#555555}.highlight .gu{color:#aaaaaa}.highlight .nb{color:#f6aa11}.highlight .cm{color:#75715e}.highlight .cp{color:#75715e}.highlight .c1{color:#75715e}.highlight .cs{color:#75715e}.highlight .c,.highlight .cd{color:#75715e}.highlight .err{color:#960050}.highlight .gr{color:#960050}.highlight .gt{color:#960050}.highlight .gd{color:#49483e}.highlight .gi{color:#49483e}.highlight .ge{color:#49483e}.highlight .kc{color:#66d9ef}.highlight .kd{color:#66d9ef}.highlight .kr{color:#66d9ef}.highlight .no{color:#66d9ef}.highlight .kt{color:#66d9ef}.highlight .mf{color:#ae81ff}.highlight .mh{color:#ae81ff}.highlight .il{color:#ae81ff}.highlight .mi{color:#ae81ff}.highlight .mo{color:#ae81ff}.highlight .m,.highlight .mb,.highlight .mx{color:#ae81ff}.highlight .sc{color:#ae81ff}.highlight .se{color:#ae81ff}.highlight .ss{color:#ae81ff}.highlight .sd{color:#e6db74}.highlight .s2{color:#e6db74}.highlight .sb{color:#e6db74}.highlight .sh{color:#e6db74}.highlight .si{color:#e6db74}.highlight .sx{color:#e6db74}.highlight .s1{color:#e6db74}.highlight .s{color:#e6db74}.highlight .na{color:#a6e22e}.highlight .nc{color:#a6e22e}.highlight .nd{color:#a6e22e}.highlight .ne{color:#a6e22e}.highlight .nf{color:#a6e22e}.highlight .vc{color:#ffffff}.highlight .nn{color:#ffffff}.highlight .nl{color:#ffffff}.highlight .ni{color:#ffffff}.highlight .bp{color:#ffffff}.highlight .vg{color:#ffffff}.highlight .vi{color:#ffffff}.highlight .nv{color:#ffffff}.highlight .w{color:#ffffff}.highlight{color:#ffffff}.highlight .n,.highlight .py,.highlight .nx{color:#ffffff}.highlight .ow{color:#f92672}.highlight .nt{color:#f92672}.highlight .k,.highlight .kv{color:#f92672}.highlight .kn{color:#f92672}.highlight .kp{color:#f92672}.highlight .o{color:#f92672}/*! + * Font Awesome 4.6.2 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url("//dgfy547layodx.cloudfront.net/assets/font-awesome/fontawesome-webfont-a280856e20cc0af53390b729ca0ac3edbf8fc889a828a379c5d634c91e80c808.eot?v=4.6.2");src:url("//dgfy547layodx.cloudfront.net/assets/font-awesome/fontawesome-webfont-a280856e20cc0af53390b729ca0ac3edbf8fc889a828a379c5d634c91e80c808.eot?v=4.6.2#iefix") format("embedded-opentype"),url("//dgfy547layodx.cloudfront.net/assets/font-awesome/fontawesome-webfont-2932abf996373e87fbf2e950876b1962f1b57db954a1643ea68831d9fbb74da4.woff2?v=4.6.2") format("woff2"),url("//dgfy547layodx.cloudfront.net/assets/font-awesome/fontawesome-webfont-35fa8302dd7d3d191ebb7acac543efcfa2b85a0da573b3ab45cc122ffcc45ce5.woff?v=4.6.2") format("woff"),url("//dgfy547layodx.cloudfront.net/assets/font-awesome/fontawesome-webfont-8630313bee77f64206067ed80eb6a7c721b0bbfc91c94210966969d4dcc43ba7.ttf?v=4.6.2") format("truetype"),url("//dgfy547layodx.cloudfront.net/assets/font-awesome/fontawesome-webfont-6b0adce775f4d57ac800f23b05af72ced748ae51ba67a65b67b7316f1ed331b3.svg?v=4.6.2#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}@font-face{font-family:'Aldrich';font-style:normal;font-weight:400;src:local("Aldrich-Regular"),url(//dgfy547layodx.cloudfront.net/assets/Aldrich-Regular-38c2138e642f70184a29a02a58c362a9fb12b5ef6e7716bf4b685197b4399c75.ttf) format("truetype")}@font-face{font-family:'Cabin';font-style:normal;font-weight:400;src:local("Cabin-Regular"),url(//dgfy547layodx.cloudfront.net/assets/Cabin-Regular-b413dc85daf37c8a32fe83edb4fac953eeef138d98ad5366a91739a849637e91.ttf) format("truetype")}@font-face{font-family:'Cabin';font-style:normal;font-weight:700;src:local("Cabin-Bold"),url(//dgfy547layodx.cloudfront.net/assets/Cabin-Bold-c978875b9206c4c1497c227e8f984d3c04accfa970a5066549c1016ff298cbf1.ttf) format("truetype")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local("OpenSans-Regular"),url(//dgfy547layodx.cloudfront.net/assets/OpenSans-Regular-e64e508b2aa2880f907e470c4550980ec4c0694d103a43f36150ac3f93189bee.ttf) format("truetype")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local("OpenSans-Bold"),url(//dgfy547layodx.cloudfront.net/assets/OpenSans-Bold-5894a3649b213cf5b2d673b6e7a871815fd1d120fa68a463592f27db14eae323.ttf) format("truetype")}@font-face{font-family:'Oswald';font-style:normal;font-weight:400;src:local("Oswald-Regular"),url(//dgfy547layodx.cloudfront.net/assets/Oswald-Regular-cce43fdf41f6092c71f3c1b14147e3571f3499eb85132aa6a11beb7e7316741e.ttf) format("truetype")}@font-face{font-family:'Oswald';font-style:normal;font-weight:700;src:local("Oswald-Bold"),url(//dgfy547layodx.cloudfront.net/assets/Oswald-Bold-fddd19f5a6d8e9f5ccf42fa3cb4542db815b05ba14c0b1cd00f484e6c1c431a1.ttf) format("truetype")}@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:local("Material Icons"),url(//dgfy547layodx.cloudfront.net/assets/MaterialIcons-Regular-b7f4a3ab562048f28dd1fa691601bc43363a61d0f876d16d8316c52e4f32d696.ttf) format("truetype")}@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;src:local("Montserrat-Regular"),url(//dgfy547layodx.cloudfront.net/assets/Montserrat-Regular-32f9bdc73ecf308a19c0e918b407e12da12b6cd9a667decdc2ddcb74f457839a.ttf) format("truetype")}@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;src:local("Montserrat-Bold"),url(//dgfy547layodx.cloudfront.net/assets/Montserrat-Bold-9cb7dc18ee6175ab86bea008eb7aff1992ea7b06933964d5e2e864090206c20a.ttf) format("truetype")}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;src:local("Roboto-Light"),url(//dgfy547layodx.cloudfront.net/assets/Roboto-Light-e7ea653ddec2d2a74d0dcbff099c009cc7469ec323a50c89a2915ce44ca4c0b4.ttf) format("truetype")}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local("Roboto-Regular"),url(//dgfy547layodx.cloudfront.net/assets/Roboto-Regular-f0e5a21bf5c95e4c1bce2be98a3656ebcc6d42a21f41c4e3ebf69dd815702e54.ttf) format("truetype")}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local("Roboto-Medium"),url(//dgfy547layodx.cloudfront.net/assets/Roboto-Medium-f205cc511821ea56078a105557fcea6253129404d411c997e1866fbd006abb68.ttf) format("truetype")}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local("Roboto-Bold"),url(//dgfy547layodx.cloudfront.net/assets/Roboto-Bold-ef2ab0e402d5cb9de893e263a2c44e57f57fec3974b0d981bfe84dec3dae83a1.ttf) format("truetype")}@font-face{font-family:'Roboto Condensed';font-style:normal;font-weight:300;src:local("RobotoCondensed-Light"),url(//dgfy547layodx.cloudfront.net/assets/RobotoCondensed-Light-3c8dc0ab1183367c5628994f0896958a9f42fd58f4d4d2c3b0e63ffa3beaebe1.ttf) format("truetype")}@font-face{font-family:'Roboto Condensed';font-style:normal;font-weight:400;src:local("RobotoCondensed-Regular"),url(//dgfy547layodx.cloudfront.net/assets/RobotoCondensed-Regular-d5cbe10cfb954e6d580525bd05536b21447ce29ab8a84e21da8a58b588190326.ttf) format("truetype")}@font-face{font-family:'Roboto Condensed';font-style:normal;font-weight:700;src:local("RobotoCondensed-Bold"),url(//dgfy547layodx.cloudfront.net/assets/RobotoCondensed-Bold-0312269650316e083b0c6d006daef09fbb56b6d172e5c65c31e23f1c25dcd28c.ttf) format("truetype")}@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:300;src:local("RobotoMono-Light"),url(//dgfy547layodx.cloudfront.net/assets/RobotoMono-Light-c570ac128b984104aeeffda5d69eea9496d676b25bdf0425585c4c934618c450.ttf) format("truetype")}@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:local("RobotoMono-Regular"),url(//dgfy547layodx.cloudfront.net/assets/RobotoMono-Regular-c7ab2d73cf7d538face08bcdde95b928ce609a970237c8811ca3c76059c8bb2f.ttf) format("truetype")}@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;src:local("RobotoMono-Bold"),url(//dgfy547layodx.cloudfront.net/assets/RobotoMono-Bold-69fdf4efd379a49f2d06cd6d64f8e6f8fa8dd44cebc5d0f0c64e86bd10ae1c79.ttf) format("truetype")}@font-face{font-family:'Roboto Slab';font-style:normal;font-weight:300;src:local("RobotoSlab-Light"),url(//dgfy547layodx.cloudfront.net/assets/RobotoSlab-Light-153bf5b428d5cd0b27a63f9a36941cd7d6c7523a7afd59c76a12f798e4c33127.ttf) format("truetype")}@font-face{font-family:'Roboto Slab';font-style:normal;font-weight:400;src:local("RobotoSlab-Regular"),url(//dgfy547layodx.cloudfront.net/assets/RobotoSlab-Regular-13aa5f54c6f2fa2e388fe0e675cdbcc6a81f6270a8bf9c03a5df8af9cb022810.ttf) format("truetype")}@font-face{font-family:'Roboto Slab';font-style:normal;font-weight:700;src:local("RobotoSlab-Bold"),url(//dgfy547layodx.cloudfront.net/assets/RobotoSlab-Bold-ba12d2eab1fa765b6b05398fa7e047dd76293f0c051ce57a8f7b0c591c14d42b.ttf) format("truetype")}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;src:local("SourceCodePro-Regular"),url(//dgfy547layodx.cloudfront.net/assets/SourceCodePro-Regular-2967dd73df838d2a2d390a638c6d7cfe9cd60c5ee2e162d8a1c10a70ea742b5c.ttf) format("truetype")}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:700;src:local("SourceCodePro-Bold"),url(//dgfy547layodx.cloudfront.net/assets/SourceCodePro-Bold-80922933add5aaad3870ade70f2a414a57327a7990ef935345ecb7a1d579e3c0.ttf) format("truetype")}*{box-sizing:border-box;margin:0;outline:none !important;padding:0}body{background:#FFFFFF;color:rgba(0,0,0,0.87);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-weight:400;height:100vh;line-height:1.5;min-height:100vh;overflow:hidden;padding:0px;position:relative}main{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow-y:auto;position:relative}html{font-size:100%}@media (max-width: 960px){html{font-size:96%}}@media (max-width: 1280px){html{font-size:93%}}@media (max-width: 600px){html{font-size:85%}}svg{display:block}abbr[title]{text-decoration:none}.l-admin-container,.l-my-account-container{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:3rem}.l-alert-wrapper{padding-left:24px;padding-right:24px;position:absolute;width:100%;z-index:30}.l-catalog-container{display:-webkit-box;display:-ms-flexbox;display:flex}.l-catalog-main{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;width:0px}.l-catalog-sidebar{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-right:1.5rem;width:232px}.l-classroom-header{height:38px;width:100vw;background:rgba(0,0,0,0.87);border-top:1px solid #d9d9d9}.l-classroom__sidebar{width:384px}.l-classroom__sidebar--students{-webkit-box-flex:1;-ms-flex:1;flex:1;width:auto}.l-classroom__main{-webkit-box-flex:1;-ms-flex:1;flex:1}.l-classroom__main--students{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:640px}.l-fill-area{height:100%;width:100%;display:block}.l-flex{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}@media (max-width: 600px){.l-flex{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.l-flex-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.l-form-width{max-width:600px}.l-full-container{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.l-full-container::after{clear:both;content:"";display:table}.l-half-width{-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:50%}.l-half-width+.l-half-width{margin-left:1.5rem}.l-third-width{-webkit-box-flex:1;-ms-flex:1 1 33%;flex:1 1 33%}.l-hidden{display:none}.l-lab-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;height:100%}.l-lab-sidebar{-webkit-transition:margin-left 0.2s cubic-bezier(0, 0, 0.2, 1);transition:margin-left 0.2s cubic-bezier(0, 0, 0.2, 1);-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;position:relative;width:320px}.l-lab-sidebar.is-hidden{-webkit-transition:margin-left 0.175s cubic-bezier(0.4, 0, 0.6, 1);transition:margin-left 0.175s cubic-bezier(0.4, 0, 0.6, 1);margin-left:calc(-320px - 3px)}.l-lab-main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:370px;padding-left:3px;position:relative;width:0px}.l-lab-main-header{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;height:56px;position:relative;z-index:25}.l-lab-main-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;height:0px;overflow:hidden;position:relative}.l-ie-iframe-fix{position:absolute;top:0;right:nil;bottom:nil;left:0;height:100%;width:100%;border:none;z-index:-1}.l-main-container{-webkit-box-flex:1;-ms-flex:auto;flex:auto;min-height:calc(100vh - 60px - 121px - 9rem);width:0}.l-sidebar{-webkit-box-flex:0;-ms-flex:none;flex:none;margin-right:1.5rem;width:180px}.l-wrapper{padding-left:24px;padding-right:24px}.l-main-wrapper{min-height:100%;padding:24px}@media (max-width: 600px){.l-main-wrapper{padding:16px}}.l-no-padding .l-main-wrapper{padding:0px}.l-wrapper--800{margin:0 auto;max-width:800px}.l-wrapper--cards{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 auto;max-width:1680px}.l-wrapper--lab-instructions{margin:0 auto 24px auto;max-width:778px}.l-wrapper--join{margin:0 auto;max-width:500px;padding-bottom:100px;padding-top:7%;width:100%}.l-wrapper--labs{margin:0 auto;max-width:864px}.l-wrapper--landing{-webkit-transition:padding .5s ease-in-out;transition:padding .5s ease-in-out;margin:0 auto;max-width:1680px;padding:0 80px}@media (max-width: 960px){.l-wrapper--landing{padding:0}}.l-wrapper--text{margin-left:auto;margin-right:auto;max-width:650px}.l-mbs{margin-bottom:0.375rem}.l-mbm{margin-bottom:0.75rem}.l-mbl{margin-bottom:1.5rem}.l-mbxl{margin-bottom:3rem}.l-mbxxl{margin-bottom:6rem}.l-mls{margin-left:0.375rem}.l-mlm{margin-left:0.75rem}.l-mll{margin-left:1.5rem}.l-mlxl{margin-left:3rem}.l-mlxxl{margin-left:6rem}.l-mlauto{margin-left:auto}.l-mrs{margin-right:0.375rem}.l-mrm{margin-right:0.75rem}.l-mrl{margin-right:1.5rem}.l-mrxl{margin-right:3rem}.l-mrxxl{margin-right:6rem}.l-mrzero{margin-right:0}.l-mts{margin-top:0.375rem}.l-mtm{margin-top:0.75rem}.l-mtl{margin-top:1.5rem}.l-mtxl{margin-top:3rem}.l-mtxxl{margin-top:6rem}.hidden{display:none}.accordion-group{background:white;border-radius:2px;margin-bottom:24px;padding:24px}.accordion-heading{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.accordion-toggle{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:20px;font-weight:400;margin-right:auto;text-decoration:none !important}.accordion-toggle i{margin-left:8px}.accordion-body{margin-top:24px}.dashboard-container{height:100%;width:100%;background:#FFFFFF;border:2px solid #ebeef4;border-radius:2px}.dashboard-container--auto-height{height:auto}.dashboard-container--danger{border-color:#DB4437}.dashboard-container--danger .dashboard-container__header{color:#DB4437;border-bottom-color:#DB4437}.dashboard-container__header,.dashboard-container__body{padding:1.5rem}.dashboard-container__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom:2px solid #ebeef4}.alert{background:#4285F4;border:none;border-radius:2px;color:#FFFFFF;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;padding:1.5rem;text-shadow:none;width:100%;z-index:25}.alert a{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;color:#FFFFFF;cursor:pointer;text-decoration:none;text-decoration:underline}.alert a:hover{text-decoration:underline}.alert__message{font-size:inherit;margin-bottom:0}.alert-error{background:#DB4437}.alert__close{color:#FFFFFF;cursor:pointer;display:block;-webkit-box-flex:0;-ms-flex:none;flex:none;margin-left:auto}.alert__close i.fa{font-size:18px !important}.alert__close:hover{color:#FFFFFF}.alert--fake{display:none}.alert--large{padding:3rem}.alert--yellow{background:rgba(244,180,0,0.75);color:rgba(0,0,0,0.87)}.alert--yellow a{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;color:#4285F4;cursor:pointer;text-decoration:none}.alert--yellow a:hover{text-decoration:underline}.alert--promo{background:#47E7AE}.alert--promo p{font-size:16px}.flash{margin-top:0.75rem}.ui-widget.ui-widget-content{border:2px solid #4285F4;border-radius:0 0 2px 2px;border-top:none}.ui-menu-item{font-size:14px;padding:2px 8px}.ui-widget-content .ui-state-focus{background:#f1f2f3;border:none}.ui-menu .ui-state-focus{margin:0}.avatar{height:32px;width:32px;border-radius:50%;display:block}.avatar--review{height:50px;width:50px;border:none;box-shadow:none}.avatar--128{height:128px;width:128px}.badge{height:118px;width:110px;color:#FFFFFF}.badge--small{height:59px;width:55px}.badge--incomplete{-webkit-filter:grayscale(100%) opacity(25%);filter:grayscale(100%) opacity(25%)}.bottom-menu{background:#FFFFFF;box-shadow:0 -3px 6px rgba(0,0,0,0.2);display:none;height:56px;-ms-flex-pack:distribute;justify-content:space-around;position:relative;z-index:25}@media (max-width: 600px){.bottom-menu{display:-webkit-box;display:-ms-flexbox;display:flex}}.bottom-menu .side-menu__item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:120px}.bottom-menu .side-menu__item__icon{height:auto;width:auto}.bottom-menu .side-menu__item__tooltip{display:none}.bottom-menu .side-menu__item__label{font-size:12px;opacity:1;line-height:1;margin-top:4px;padding:0;-webkit-transform:none;transform:none}.button{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.button{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-appearance:none;background:#FF9800;border:2px solid rgba(0,0,0,0.15);box-shadow:3px 3px 0px rgba(0,0,0,0.1);border-radius:2px;color:#FFFFFF;cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;font-weight:700;height:40px;line-height:1;padding:0px 20px;text-align:center;text-decoration:none;text-transform:uppercase;text-shadow:none}.button:hover,.button:focus{color:#fff;background:#e68900;text-decoration:none}.button:active{color:#fff;box-shadow:inset 3px 3px 1px rgba(0,0,0,0.07);text-decoration:none}.button i.fa{display:block;font-size:18px;margin-right:10px}.button.is-hidden{display:none}.button.is-disabled{background:#d3d4d5 !important;border-color:#cbccce !important;box-shadow:none !important;color:#babbbc !important;cursor:default !important}.button--add-linkedin{background:#0077B5;color:"$white"}.button--add-linkedin:hover,.button--add-linkedin:focus{background:#00669c;color:"$white"}.button--cancel{background:#f3f4f6;color:rgba(0,0,0,0.87);box-shadow:3px 3px 0px rgba(0,0,0,0.1)}.button--cancel:hover,.button--cancel:focus{background:#e4e7eb;color:rgba(0,0,0,0.87)}.button--cancel:active{box-shadow:inset 3px 3px 1px rgba(0,0,0,0.07)}.button--copy{background:#F8F9FB;color:rgba(0,0,0,0.87);height:24px;width:24px;border-width:1px;box-shadow:1px 1px 0px rgba(0,0,0,0.1);display:block;padding:0;text-align:center}.button--copy:hover,.button--copy:focus{background:#e8ebf2;color:rgba(0,0,0,0.87)}.button--copy i.fa{font-size:12px;margin:0}.button--copy--inline{height:26px;width:26px;background:transparent;border-radius:0 2px 2px 0;border-color:#f3f4f6;border-left:none;border-width:2px;box-shadow:none;display:inline-block;position:relative;top:-2px}.button--copy--inline i.fa{color:#707071;font-size:11px}.button--copy--inline:hover{background:#f3f4f6}.button--copy-input{background:#4285F4;color:#FFFFFF;position:absolute;top:nil;right:0;bottom:0;left:nil;height:30px;width:30px;border:none;border-bottom-left-radius:0px;border-top-left-radius:0px;box-shadow:none}.button--copy-input:hover,.button--copy-input:focus{background:#2a75f3;color:#FFFFFF}.button--danger,.button--end{background:#DB4437;color:"$white"}.button--danger:hover,.button--danger:focus,.button--end:hover,.button--end:focus{background:#d33426;color:"$white"}.button--full-width{width:100%}.button--icon i.fa{margin:0}.button--lab{margin-top:-1px;width:120px}.button--lab i.fa{margin:0}.button--outline{background:transparent;box-shadow:none;border-color:currentColor}.button--secondary{background:#F4B400;color:"$white"}.button--secondary:hover,.button--secondary:focus{background:#dba100;color:"$white"}.button--tertiary{background:#4285F4;color:"$white"}.button--tertiary:hover,.button--tertiary:focus{background:#2a75f3;color:"$white"}.button--small{height:auto;padding:4px}.button--start{background:#8ED525;color:"$white"}.button--start:hover,.button--start:focus{background:#80bf21;color:"$white"}.button--wait{background:#f3f4f6;color:"$white";cursor:default !important;box-shadow:none !important}.button--wait:hover,.button--wait:focus{background:#e4e7eb;color:"$white"}.mdl-button{text-decoration:none !important}.mdl-button--white{color:#fff}.mdl-button--bottom-right{position:fixed;top:nil;right:24px;bottom:24px;left:nil;z-index:700}.mdl-button--large-fab{height:64px;width:64px}.mdl-button--icon--expanded{border-radius:100px;width:56px}.buy-credits__option__details__price,.buy-course__option__details__price{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.buy-credits__option,.buy-course__option{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.buy-credits__option:not(:last-child),.buy-course__option:not(:last-child){margin-bottom:0.75rem}.buy-credits__option__details,.buy-course__option__details{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;cursor:pointer;font-size:16px;font-weight:400;margin-left:0.75rem;text-transform:none}.buy-credits__option__details.is-selected .buy-credits__option__details__item,.buy-credits__option__details.is-selected .buy-course__option__details__item,.buy-course__option__details.is-selected .buy-credits__option__details__item,.buy-course__option__details.is-selected .buy-course__option__details__item{background:#8ED525;color:#FFFFFF}.buy-credits__option__details.is-selected .buy-credits__option__details__item span,.buy-credits__option__details.is-selected .buy-course__option__details__item span,.buy-course__option__details.is-selected .buy-credits__option__details__item span,.buy-course__option__details.is-selected .buy-course__option__details__item span{color:rgba(255,255,255,0.5)}.buy-credits__option__details.is-selected .buy-credits__option__details__price,.buy-credits__option__details.is-selected .buy-course__option__details__price,.buy-course__option__details.is-selected .buy-credits__option__details__price,.buy-course__option__details.is-selected .buy-course__option__details__price{border-color:#8ED525}.buy-credits__option__details__item,.buy-course__option__details__item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;background:#f3f4f6;border-radius:2px 0 0 2px;color:rgba(0,0,0,0.87);height:60px;padding:0 0.75rem}.buy-credits__option__details__item img,.buy-course__option__details__item img{height:40px;margin-right:0.75rem}.buy-credits__option__details__item span,.buy-course__option__details__item span{color:#8ED525;font-size:14px;margin-left:0.75rem}.buy-credits__option__details__item input,.buy-course__option__details__item input{margin-left:0.75rem;width:50%}.buy-credits__option__details__price,.buy-course__option__details__price{height:60px;width:100px;border:2px solid #f3f4f6;border-radius:0 2px 2px 0}.buy-credits__total,.buy-course__total,.buy-course__tax,.buy-course__sub-total{display:-webkit-box;display:-ms-flexbox;display:flex}.buy-credits__payment-options,.buy-course__payment-options{display:-webkit-box;display:-ms-flexbox;display:flex}.buy-credits__payment-options>*:not(:last-child),.buy-course__payment-options>*:not(:last-child){margin-right:1.5rem}.card{background:#fafafa;border-radius:2px;box-shadow:0px 2px 2px rgba(0,0,0,0.24),0px 0px 2px rgba(0,0,0,0.12)}.card__inner{padding:1.5rem}.card__big-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:7px;padding:45px;background:#FFFFFF;border:1px solid #eee}.card__big-button img{margin:auto;width:273px}.card-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width: 600px){.card-wrapper{display:block}}.card--catalog{background:-webkit-linear-gradient(left top, #0b51c5, #72a4f7);background:linear-gradient(to right bottom, #0b51c5, #72a4f7);color:#FFFFFF;display:block;margin-bottom:24px;min-height:180px;padding:16px;position:relative;text-decoration:none !important;width:calc((100% - 62px) / 4)}.card--catalog h2{font-family:'Roboto Condensed';font-size:24px;font-weight:200}.card--catalog span{background:#FFFFFF;border-radius:100px;color:#0b51c5;display:inline-block;font-size:12px;font-weight:700;margin-top:8px;padding:2px 9px;text-transform:uppercase}.card--catalog p{font-size:14px;margin:0;opacity:.54}.card--catalog .mdl-card__content{bottom:16px;left:16px;position:absolute;right:16px}.card--catalog:hover{background:-webkit-linear-gradient(left top, #0a47ac, #5a95f5);background:linear-gradient(to right bottom, #0a47ac, #5a95f5);box-shadow:0 4px 5px rgba(0,0,0,0.14),0 1px 10px rgba(0,0,0,0.12),0 2px 4px rgba(0,0,0,0.2)}@media (min-width: 1281px){.card--catalog{width:calc((100% - 96px) / 5)}.card--catalog:not(:nth-child(5n)){margin-right:24px}}@media (min-width: 961px) and (max-width: 1280px){.card--catalog{width:calc((100% - 72px) / 4)}.card--catalog:not(:nth-child(4n)){margin-right:24px}}@media (min-width: 601px) and (max-width: 960px){.card--catalog{width:calc((100% - 48px) / 3)}.card--catalog:not(:nth-child(3n)){margin-right:24px}}@media (max-width: 600px){.card--catalog{padding:8px;width:calc((100% - 16px) / 2)}.card--catalog h2{font-size:18px}.card--catalog p{font-size:12px}.card--catalog .mdl-card__content{bottom:8px;left:8px;right:8px}.card--catalog:not(:nth-child(2n)){margin-right:16px}}.card--classroom{background:-webkit-linear-gradient(left top, #0b51c5, #72a4f7);background:linear-gradient(to right bottom, #0b51c5, #72a4f7)}.card--classroom span{color:#0b51c5}.card--classroom:hover{background:-webkit-linear-gradient(left top, #0a47ac, #5a95f5);background:linear-gradient(to right bottom, #0a47ac, #5a95f5)}.card--catalog.card--in-session{min-height:240px;margin-right:0px;padding:16px}.card--catalog.card--in-session h2{font-size:28px}.card--catalog.card--in-session span{font-size:13px}.card--catalog.card--in-session p{font-size:16px}@media (min-width: 1281px){.card--catalog.card--in-session{width:calc((100% - 72px) / 4)}.card--catalog.card--in-session:not(:nth-child(4n)){margin-right:24px}}@media (min-width: 961px) and (max-width: 1280px){.card--catalog.card--in-session{width:calc((100% - 48px) / 3)}.card--catalog.card--in-session:not(:nth-child(3n)){margin-right:24px}}@media (min-width: 601px) and (max-width: 960px){.card--catalog.card--in-session{width:calc((100% - 24px) / 2)}.card--catalog.card--in-session:not(:nth-child(2n)){margin-right:24px}}@media (max-width: 600px){.card--catalog.card--in-session{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin:0 0 16px 0;width:100%}}.lab-show-card,.card--lab-show{margin-bottom:24px;margin-right:24px;min-height:0px;width:100%}.lab-show-card p,.card--lab-show p{color:rgba(0,0,0,0.87);font-size:14px;margin:0}.lab-show-card p span,.card--lab-show p span{color:rgba(0,0,0,0.54);margin-right:24px}.lab-show-card .permissions-display,.card--lab-show .permissions-display{margin:8px 0}.lab-show-card:last-of-type,.card--lab-show:last-of-type{margin-right:0px}.card--edit-lab-locale{margin:0 auto;width:640px}.card--edit-lab-locale .mdl-card__supporting-text{width:100%}.card--edit-lab-locale .mdl-card__actions{text-align:right}.card--full-width{width:100%}.card--table{width:100%}.card--table .mdl-card__supporting-text{padding:16px 0;width:100%}.card--instructions{padding:64px;width:100%}.card--instructions h1:first-of-type{margin-top:0px !important}.mdl-card{border-radius:8px;width:100%}.mdl-card--shadow{box-shadow:0px 1px 6px rgba(32,33,36,0.28)}.mdl-card__supporting-text .pagination{margin:24px 16px 8px 0px}.mdl-card__title{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:24px}@media (max-width: 600px){.mdl-card__title{padding:16px}}.mdl-card__supporting-text--full{padding:24px;width:100%}.mdl-card__edit{border-radius:8px;box-shadow:0px 1px 6px rgba(32,33,36,0.28)}.mdl-card__edit-row,.mdl-card__edit-title{background:#fff;border-top:1px solid #eee;cursor:pointer;font-size:14px;height:64px;padding:12px 24px;-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out}.mdl-card__edit-row h3,.mdl-card__edit-title h3{margin-bottom:3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.mdl-card__edit-row .mdl-card__edit-row__closed,.mdl-card__edit-title .mdl-card__edit-row__closed{color:rgba(0,0,0,0.54);font-size:13px}.mdl-card__edit-row .mdl-card__edit-row__closed span:not(:last-child),.mdl-card__edit-title .mdl-card__edit-row__closed span:not(:last-child){margin-right:12px}.mdl-card__edit-row .mdl-card__edit-row__open,.mdl-card__edit-title .mdl-card__edit-row__open{left:-5000px;opacity:0;position:relative}.mdl-card__edit-row .mdl-card__edit-row__open .form-row:last-child,.mdl-card__edit-title .mdl-card__edit-row__open .form-row:last-child{margin-bottom:0px}.mdl-card__edit-row .mdl-card__edit-row__open .mdl-button,.mdl-card__edit-title .mdl-card__edit-row__open .mdl-button{margin-left:auto}.mdl-card__edit-row:first-child,.mdl-card__edit-title:first-child{border-radius:8px 8px 0 0;border-top:none}.mdl-card__edit-row:last-child,.mdl-card__edit-title:last-child{border-radius:0 0 8px 8px}.mdl-card__edit-row:hover{background:#f6f6f6}.mdl-card__edit-row.is-selected{background:#f6f6f6;border-top-color:#ddd;cursor:default}.mdl-card__edit-row.is-selected h3{margin-bottom:16px}.mdl-card__edit-row.is-selected .mdl-card__edit-row__closed{display:none}.mdl-card__edit-row.is-selected .mdl-card__edit-row__open{-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;opacity:1;left:0}.mdl-card__edit-row.is-selected+.mdl-card__edit-row{border-top-color:#ddd}.mdl-card__edit.is-locked .mdl-card__edit-row,.mdl-card__edit.is-locked .mdl-card__edit-title{cursor:default}.mdl-card__edit.is-locked .mdl-card__edit-row:hover,.mdl-card__edit.is-locked .mdl-card__edit-title:hover{background:#fff}.mdl-shadow--1dp{box-shadow:0 0 2px rgba(0,0,0,0.14),0 2px 2px rgba(0,0,0,0.12),0 1px 3px rgba(0,0,0,0.2)}input[type='text'].catalog__search{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:url(//dgfy547layodx.cloudfront.net/assets/icon_search-e86777ad0582fff922c5034cc9ea62037f0c89b40252e4f6ba0158a88160198d.svg) no-repeat 8px center;display:-webkit-box;display:-ms-flexbox;display:flex;background-size:20px 20px;border:none;border-bottom:2px solid #e9eaec;border-radius:0px;box-sizing:content-box;color:rgba(0,0,0,0.87);cursor:text;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:16px;font-weight:400;height:40px;line-height:1;padding:0;padding-left:36px;width:calc(100% - 36px)}input[type='text'].catalog__search::-webkit-input-placeholder{color:rgba(0,0,0,0.54)}input[type='text'].catalog__search:-ms-input-placeholder{color:rgba(0,0,0,0.54)}input[type='text'].catalog__search::placeholder{color:rgba(0,0,0,0.54)}input[type='text'].catalog__search:hover{background-image:url(//dgfy547layodx.cloudfront.net/assets/icon_search--hover-e9e90817ec9adc992b3188eaa7f4d88617e8a9b1daf6b53f3e252cdc2c2fa660.svg)}input[type='text'].catalog__search:focus{background-image:url(//dgfy547layodx.cloudfront.net/assets/icon_search--active-2ec7fd0c5d69b5e20eda8be36209b3da166eb044af5ff733c991a9ff638d7107.svg)}.catalog__filters{min-height:0;width:100%}.catalog__filters .mdl-checkbox__label{font-size:14px}.labs-table .td:nth-child(1){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:14px}.labs-table .td:nth-child(2){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.labs-table .td:nth-child(7){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:25px}.quests-table .td:nth-child(1){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:13px}.quests-table .td:nth-child(2){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:55px}.quests-table .td:nth-child(3){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:35%}.quests-table .td:nth-child(4){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:200px}.chosen-container-single .chosen-single div b:before,.chosen-container-multi .chosen-single div b:before{font-family:'Material Icons';margin-left:3px;position:absolute;text-decoration:none}.chosen-container{display:block;font-size:13px;width:100% !important}.chosen-container .chosen-drop{-webkit-transition:opacity .1s ease-in-out, left 0s ease-in-out .1s;transition:opacity .1s ease-in-out, left 0s ease-in-out .1s;border:2px solid #4285F4;border-top:0;background:#fff;box-shadow:none;opacity:0}.chosen-container .chosen-results{color:rgba(0,0,0,0.87);margin:0;padding:0;max-height:300px}.chosen-container .chosen-results li{font-size:13px;padding:13px 8px;line-height:1}.chosen-container .chosen-results li.highlighted{background:#eef1f5 !important;color:rgba(0,0,0,0.87)}.chosen-container-single .chosen-single,.chosen-container-single .chosen-choices,.chosen-container-multi .chosen-single,.chosen-container-multi .chosen-choices{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#FFFFFF;border:2px solid #ebeef4;border-radius:2px;box-shadow:none;color:rgba(0,0,0,0.87);display:-webkit-box;display:-ms-flexbox;display:flex;line-height:1}.chosen-container-single .chosen-single:hover,.chosen-container-single .chosen-choices:hover,.chosen-container-multi .chosen-single:hover,.chosen-container-multi .chosen-choices:hover{border-color:#dee3ec}.chosen-container-single .chosen-single:hover div b:before,.chosen-container-single .chosen-choices:hover div b:before,.chosen-container-multi .chosen-single:hover div b:before,.chosen-container-multi .chosen-choices:hover div b:before{color:#c4ccdd}.chosen-container-single .chosen-single,.chosen-container-multi .chosen-single{height:40px;padding:8px}.chosen-container-single .chosen-single span,.chosen-container-multi .chosen-single span{margin-right:0}.chosen-container-single .chosen-single div,.chosen-container-multi .chosen-single div{height:13px;width:13px;margin-left:auto;position:static;display:block}.chosen-container-single .chosen-single div b,.chosen-container-multi .chosen-single div b{height:auto;width:auto;background:none !important;display:block}.chosen-container-single .chosen-single div b:before,.chosen-container-multi .chosen-single div b:before{-webkit-transition:color .1s ease-in-out, -webkit-transform .3s ease-in-out;transition:color .1s ease-in-out, -webkit-transform .3s ease-in-out;transition:color .1s ease-in-out, transform .3s ease-in-out;transition:color .1s ease-in-out, transform .3s ease-in-out, -webkit-transform .3s ease-in-out;color:#999;content:'arrow_downward';color:#d8dde8}.chosen-container-single .chosen-choices,.chosen-container-multi .chosen-choices{height:auto;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:5px 4px 4px 4px}.chosen-container-single .chosen-choices li.search-choice,.chosen-container-multi .chosen-choices li.search-choice{background:#eef1f5 !important;font-size:13px;margin:2px 4px 2px 4px;border:none;max-width:100%;box-shadow:none;color:rgba(0,0,0,0.87);line-height:1}.chosen-container-single .chosen-choices li.search-field input[type='text'],.chosen-container-multi .chosen-choices li.search-field input[type='text']{color:#dee3ec;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:13px;margin-left:4px}.chosen-container-single .chosen-drop,.chosen-container-multi .chosen-drop{margin-top:0}.chosen-container.chosen-with-drop .chosen-drop{-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;opacity:1}.chosen-container-active.chosen-with-drop .chosen-single,.chosen-container-active.chosen-with-drop .chosen-choices{border:2px solid #4285F4;background:none !important;border-bottom-right-radius:0;border-bottom-left-radius:0;box-shadow:none}.chosen-container-active.chosen-with-drop .chosen-single div b:before,.chosen-container-active.chosen-with-drop .chosen-choices div b:before{-webkit-transform:rotate(180deg);transform:rotate(180deg);color:#4285F4}.cognito .c-button{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.cognito .c-forms-form-title h2{display:none !important}.cognito .c-forms-description{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif !important;font-size:16px !important;font-weight:400 !important;line-height:1.5 !important;padding:none !important}.cognito label{cursor:text !important;display:inline-block !important;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif !important;font-size:14px !important;font-weight:700 !important;line-height:1 !important;text-decoration:none !important;text-transform:uppercase !important;margin-bottom:2px !important}.cognito .c-label:after{color:#F4B400 !important;cursor:text !important;display:inline-block !important;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif !important;font-weight:700 !important;line-height:1 !important;text-decoration:none !important;text-transform:uppercase !important}.cognito input[type="color"],.cognito input[type="date"],.cognito input[type="datetime"],.cognito input[type="datetime-local"],.cognito input[type="email"],.cognito input[type="month"],.cognito input[type="number"],.cognito input[type="password"],.cognito input[type="search"],.cognito input[type="tel"],.cognito input[type="text"],.cognito input[type="time"],.cognito input[type="url"],.cognito input[type="week"],.cognito input:not([type]),.cognito textarea{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#FFFFFF !important;border:2px solid #ebeef4 !important;border-radius:2px !important;box-shadow:none !important;color:rgba(0,0,0,0.87) !important;cursor:text !important;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif !important;font-size:13px !important;font-weight:400 !important;height:40px !important;line-height:1 !important;padding:8px !important;width:100% !important}.cognito input[type="color"]::-webkit-input-placeholder,.cognito input[type="date"]::-webkit-input-placeholder,.cognito input[type="datetime"]::-webkit-input-placeholder,.cognito input[type="datetime-local"]::-webkit-input-placeholder,.cognito input[type="email"]::-webkit-input-placeholder,.cognito input[type="month"]::-webkit-input-placeholder,.cognito input[type="number"]::-webkit-input-placeholder,.cognito input[type="password"]::-webkit-input-placeholder,.cognito input[type="search"]::-webkit-input-placeholder,.cognito input[type="tel"]::-webkit-input-placeholder,.cognito input[type="text"]::-webkit-input-placeholder,.cognito input[type="time"]::-webkit-input-placeholder,.cognito input[type="url"]::-webkit-input-placeholder,.cognito input[type="week"]::-webkit-input-placeholder,.cognito input:not([type])::-webkit-input-placeholder,.cognito textarea::-webkit-input-placeholder{color:rgba(0,0,0,0.54) !important}.cognito input[type="color"]:-ms-input-placeholder,.cognito input[type="date"]:-ms-input-placeholder,.cognito input[type="datetime"]:-ms-input-placeholder,.cognito input[type="datetime-local"]:-ms-input-placeholder,.cognito input[type="email"]:-ms-input-placeholder,.cognito input[type="month"]:-ms-input-placeholder,.cognito input[type="number"]:-ms-input-placeholder,.cognito input[type="password"]:-ms-input-placeholder,.cognito input[type="search"]:-ms-input-placeholder,.cognito input[type="tel"]:-ms-input-placeholder,.cognito input[type="text"]:-ms-input-placeholder,.cognito input[type="time"]:-ms-input-placeholder,.cognito input[type="url"]:-ms-input-placeholder,.cognito input[type="week"]:-ms-input-placeholder,.cognito input:not([type]):-ms-input-placeholder,.cognito textarea:-ms-input-placeholder{color:rgba(0,0,0,0.54) !important}.cognito input[type="color"]::placeholder,.cognito input[type="date"]::placeholder,.cognito input[type="datetime"]::placeholder,.cognito input[type="datetime-local"]::placeholder,.cognito input[type="email"]::placeholder,.cognito input[type="month"]::placeholder,.cognito input[type="number"]::placeholder,.cognito input[type="password"]::placeholder,.cognito input[type="search"]::placeholder,.cognito input[type="tel"]::placeholder,.cognito input[type="text"]::placeholder,.cognito input[type="time"]::placeholder,.cognito input[type="url"]::placeholder,.cognito input[type="week"]::placeholder,.cognito input:not([type])::placeholder,.cognito textarea::placeholder{color:rgba(0,0,0,0.54) !important}.cognito input[type="color"]:hover,.cognito input[type="date"]:hover,.cognito input[type="datetime"]:hover,.cognito input[type="datetime-local"]:hover,.cognito input[type="email"]:hover,.cognito input[type="month"]:hover,.cognito input[type="number"]:hover,.cognito input[type="password"]:hover,.cognito input[type="search"]:hover,.cognito input[type="tel"]:hover,.cognito input[type="text"]:hover,.cognito input[type="time"]:hover,.cognito input[type="url"]:hover,.cognito input[type="week"]:hover,.cognito input:not([type]):hover,.cognito textarea:hover{border-color:#e4e5e7 !important}.cognito input[type="color"]:focus,.cognito input[type="color"].active,.cognito input[type="date"]:focus,.cognito input[type="date"].active,.cognito input[type="datetime"]:focus,.cognito input[type="datetime"].active,.cognito input[type="datetime-local"]:focus,.cognito input[type="datetime-local"].active,.cognito input[type="email"]:focus,.cognito input[type="email"].active,.cognito input[type="month"]:focus,.cognito input[type="month"].active,.cognito input[type="number"]:focus,.cognito input[type="number"].active,.cognito input[type="password"]:focus,.cognito input[type="password"].active,.cognito input[type="search"]:focus,.cognito input[type="search"].active,.cognito input[type="tel"]:focus,.cognito input[type="tel"].active,.cognito input[type="text"]:focus,.cognito input[type="text"].active,.cognito input[type="time"]:focus,.cognito input[type="time"].active,.cognito input[type="url"]:focus,.cognito input[type="url"].active,.cognito input[type="week"]:focus,.cognito input[type="week"].active,.cognito input:not([type]):focus,.cognito input:not([type]).active,.cognito textarea:focus,.cognito textarea.active{border-color:#4285F4 !important;box-shadow:none !important}.cognito textarea{height:200px !important}.cognito .c-button{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-appearance:none !important;background:#FF9800 !important;border:2px solid rgba(0,0,0,0.15) !important;box-shadow:3px 3px 0px rgba(0,0,0,0.1) !important;border-radius:2px !important;color:#FFFFFF !important;cursor:pointer !important;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif !important;font-size:14px !important;font-weight:700 !important;height:40px !important;line-height:1 !important;padding:0px 20px !important;text-align:center !important;text-decoration:none !important;text-transform:uppercase !important;text-shadow:none !important}.daterangepicker{border:2px solid #4285F4;box-shadow:3px 3px 0px rgba(0,0,0,0.1);display:none;padding:0px}.daterangepicker:before,.daterangepicker:after{display:none !important}.daterangepicker .ranges{margin:0px !important}.daterangepicker .ranges li{background:none;border-radius:0;border:none !important;color:rgba(0,0,0,0.87);font-size:11px;margin:0 !important;padding:8px;text-transform:uppercase}.daterangepicker .ranges li:hover{background:#eef1f5;color:rgba(0,0,0,0.87)}.daterangepicker .ranges li.active{background:#4285F4;color:#FFFFFF}.daterangepicker .range_inputs{border-top:2px solid #ebeef4}.daterangepicker .range_inputs .daterangepicker_start_input,.daterangepicker .range_inputs .daterangepicker_end_input{float:none !important;padding:0px 8px}.daterangepicker .range_inputs label{color:rgba(0,0,0,0.87);font-size:10px;line-height:1;margin-bottom:0px !important;text-shadow:none}.daterangepicker .range_inputs .input-mini{padding:4px;height:auto}.daterangepicker .range_inputs .btn-small{height:auto;margin:8px 0px 8px 6px;padding:8px}.daterangepicker .range_inputs .btn-small:first-of-type{margin-left:11px}.daterangepicker .range_inputs .btn-small.cancelBtn{background:#f3f4f6;color:rgba(0,0,0,0.87);box-shadow:3px 3px 0px rgba(0,0,0,0.1)}.daterangepicker .range_inputs .btn-small.cancelBtn:hover,.daterangepicker .range_inputs .btn-small.cancelBtn:focus{background:#e4e7eb;color:rgba(0,0,0,0.87)}.daterangepicker .range_inputs .btn-small.cancelBtn:active{box-shadow:inset 3px 3px 1px rgba(0,0,0,0.07)}.dialog{-webkit-transition:-webkit-transform 0.175s cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 0.175s cubic-bezier(0.4, 0, 1, 1);transition:transform 0.175s cubic-bezier(0.4, 0, 1, 1);transition:transform 0.175s cubic-bezier(0.4, 0, 1, 1),-webkit-transform 0.175s cubic-bezier(0.4, 0, 1, 1);-webkit-transform:translateY(100%);transform:translateY(100%);z-index:900}.dialog--full-screen{height:100vh;width:100vw;position:fixed;top:0;right:nil;bottom:nil;left:0}.dialog--pure{background:white}.dialog--pure .dialog__header{background:white;box-shadow:none}.dialog.is-open{-webkit-transition:-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.2s cubic-bezier(0, 0, 0.2, 1),-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);-webkit-transform:translateY(0%);transform:translateY(0%)}.dialog__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:60px;padding:0px 24px}.dialog__header a{margin-right:32px}.dialog__header h1{font-size:20px;font-weight:400;line-height:1}.dialog__body{margin:64px auto;width:640px}.faq__block{margin:0.75rem 0}.faq__question{display:block;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif}.faq__answer{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif}.faq__answer *{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif}.faq__answer ol,.faq__answer ul{padding-left:18px}.faq__support{position:fixed;top:nil;right:5px;bottom:5px;left:nil;z-index:6}.footer__link{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none;text-transform:uppercase}.footer{padding-left:1.5rem;padding-right:1.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;top:nil;right:0px;bottom:0px;left:0px;padding-bottom:1.5rem;padding-top:1.5rem;z-index:5}@media (min-width: 1281px){.footer{padding-left:3rem;padding-right:3rem}}.footer__link{display:inline-block;font-size:12px}.footer__link:not(:last-child){margin-right:0.75rem}.footer__logo{height:40px;width:auto;display:block}.footer__right-content{margin-left:auto;text-align:right}.help-block{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none;text-transform:uppercase}.control-group{line-height:1;position:relative}.control-group.error label,.control-group.error .control-label{color:#DB4437}.control-group.error input[type="color"],.control-group.error input[type="date"],.control-group.error input[type="datetime"],.control-group.error input[type="datetime-local"],.control-group.error input[type="email"],.control-group.error input[type="month"],.control-group.error input[type="number"],.control-group.error input[type="password"],.control-group.error input[type="search"],.control-group.error input[type="tel"],.control-group.error input[type="text"],.control-group.error input[type="time"],.control-group.error input[type="url"],.control-group.error input[type="week"],.control-group.error input:not([type]),.control-group.error textarea,.control-group.error .input{border-color:#DB4437}.control-group.error .help-inline{color:#DB4437;font-size:14px}.control-group.error .button,.control-group.error .btn{color:#FFFFFF}form .alert{margin:0;margin-bottom:1.5rem;position:relative;width:100%}.form-row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:0.75rem}.form-row .control-group{-webkit-box-flex:1;-ms-flex:1;flex:1;width:0}.form-row .control-group:not(:last-of-type){margin-right:1.5rem}.form-row .control-group+.button,.form-row .control-group+.btn{-webkit-box-flex:0;-ms-flex:none;flex:none;margin-left:1.5rem}.form-row--lab-sidebar{background:rgba(0,0,0,0.08);border:1px solid rgba(0,0,0,0.1);border-radius:2px;padding:10px}.form-row--search-classes{margin-bottom:0px;width:70%}.form-row--search-classes input[type='text']{border:none;background:#f0f0f0;-webkit-box-flex:1;-ms-flex:1;flex:1}.form-row--search-classes input[type='text']:hover{background:#ececec}.form-row--search-classes input[type='text']:focus{background:#e0e0e0}.form-row--search-classes input[type='submit']{height:40px;line-height:40px}@media (max-width: 1280px){.form-row--search-classes{width:60%}}@media (max-width: 960px){.form-row--search-classes{width:50%}}.form-actions{text-align:center}.form-actions .button--full-width{display:inline-block}.form-actions--right{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-right:-16px}.form-actions--right a{margin-left:16px}.help-block{color:rgba(0,0,0,0.54)}.control-group.required abbr{color:#F4B400;font-size:18px;position:relative;top:5px}.checkbox--flipped{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-top:5px}.checkbox--flipped input[type='checkbox']{margin-right:0.75rem;position:relative;top:-4px}input[type='checkbox']{margin:0}.control-group.radio_buttons .radio label{display:block;font-weight:400;margin:8px 0 8px 8px}.control-group.radio_buttons .radio label input{margin-right:8px}label,.label{cursor:text;display:inline-block;margin-bottom:2px}.label--console{color:rgba(0,0,0,0.6918);display:block;font-size:10px !important;font-weight:700;margin-bottom:0px}input[type="color"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="email"],input[type="month"],input[type="number"],input[type="password"],input[type="search"],input[type="tel"],input[type="text"],input[type="time"],input[type="url"],input[type="week"],textarea,.input{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#FFFFFF;border:2px solid #ebeef4;border-radius:2px;box-shadow:none;color:rgba(0,0,0,0.87);cursor:text;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:13px;font-weight:400;height:40px;line-height:1;padding:8px;width:100%}input[type="color"]::-webkit-input-placeholder,input[type="date"]::-webkit-input-placeholder,input[type="datetime"]::-webkit-input-placeholder,input[type="datetime-local"]::-webkit-input-placeholder,input[type="email"]::-webkit-input-placeholder,input[type="month"]::-webkit-input-placeholder,input[type="number"]::-webkit-input-placeholder,input[type="password"]::-webkit-input-placeholder,input[type="search"]::-webkit-input-placeholder,input[type="tel"]::-webkit-input-placeholder,input[type="text"]::-webkit-input-placeholder,input[type="time"]::-webkit-input-placeholder,input[type="url"]::-webkit-input-placeholder,input[type="week"]::-webkit-input-placeholder,textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder{color:rgba(0,0,0,0.54)}input[type="color"]:-ms-input-placeholder,input[type="date"]:-ms-input-placeholder,input[type="datetime"]:-ms-input-placeholder,input[type="datetime-local"]:-ms-input-placeholder,input[type="email"]:-ms-input-placeholder,input[type="month"]:-ms-input-placeholder,input[type="number"]:-ms-input-placeholder,input[type="password"]:-ms-input-placeholder,input[type="search"]:-ms-input-placeholder,input[type="tel"]:-ms-input-placeholder,input[type="text"]:-ms-input-placeholder,input[type="time"]:-ms-input-placeholder,input[type="url"]:-ms-input-placeholder,input[type="week"]:-ms-input-placeholder,textarea:-ms-input-placeholder,.input:-ms-input-placeholder{color:rgba(0,0,0,0.54)}input[type="color"]::placeholder,input[type="date"]::placeholder,input[type="datetime"]::placeholder,input[type="datetime-local"]::placeholder,input[type="email"]::placeholder,input[type="month"]::placeholder,input[type="number"]::placeholder,input[type="password"]::placeholder,input[type="search"]::placeholder,input[type="tel"]::placeholder,input[type="text"]::placeholder,input[type="time"]::placeholder,input[type="url"]::placeholder,input[type="week"]::placeholder,textarea::placeholder,.input::placeholder{color:rgba(0,0,0,0.54)}input[type="color"][disabled='disabled'],input[type="color"][disabled],input[type="color"] .is-disabled,input[type="date"][disabled='disabled'],input[type="date"][disabled],input[type="date"] .is-disabled,input[type="datetime"][disabled='disabled'],input[type="datetime"][disabled],input[type="datetime"] .is-disabled,input[type="datetime-local"][disabled='disabled'],input[type="datetime-local"][disabled],input[type="datetime-local"] .is-disabled,input[type="email"][disabled='disabled'],input[type="email"][disabled],input[type="email"] .is-disabled,input[type="month"][disabled='disabled'],input[type="month"][disabled],input[type="month"] .is-disabled,input[type="number"][disabled='disabled'],input[type="number"][disabled],input[type="number"] .is-disabled,input[type="password"][disabled='disabled'],input[type="password"][disabled],input[type="password"] .is-disabled,input[type="search"][disabled='disabled'],input[type="search"][disabled],input[type="search"] .is-disabled,input[type="tel"][disabled='disabled'],input[type="tel"][disabled],input[type="tel"] .is-disabled,input[type="text"][disabled='disabled'],input[type="text"][disabled],input[type="text"] .is-disabled,input[type="time"][disabled='disabled'],input[type="time"][disabled],input[type="time"] .is-disabled,input[type="url"][disabled='disabled'],input[type="url"][disabled],input[type="url"] .is-disabled,input[type="week"][disabled='disabled'],input[type="week"][disabled],input[type="week"] .is-disabled,textarea[disabled='disabled'],textarea[disabled],textarea .is-disabled,.input[disabled='disabled'],.input[disabled],.input .is-disabled{background:#f3f4f6;color:rgba(0,0,0,0.54);cursor:default}input[type="color"][disabled='disabled']+.button--copy-input,input[type="color"][disabled]+.button--copy-input,input[type="color"] .is-disabled+.button--copy-input,input[type="date"][disabled='disabled']+.button--copy-input,input[type="date"][disabled]+.button--copy-input,input[type="date"] .is-disabled+.button--copy-input,input[type="datetime"][disabled='disabled']+.button--copy-input,input[type="datetime"][disabled]+.button--copy-input,input[type="datetime"] .is-disabled+.button--copy-input,input[type="datetime-local"][disabled='disabled']+.button--copy-input,input[type="datetime-local"][disabled]+.button--copy-input,input[type="datetime-local"] .is-disabled+.button--copy-input,input[type="email"][disabled='disabled']+.button--copy-input,input[type="email"][disabled]+.button--copy-input,input[type="email"] .is-disabled+.button--copy-input,input[type="month"][disabled='disabled']+.button--copy-input,input[type="month"][disabled]+.button--copy-input,input[type="month"] .is-disabled+.button--copy-input,input[type="number"][disabled='disabled']+.button--copy-input,input[type="number"][disabled]+.button--copy-input,input[type="number"] .is-disabled+.button--copy-input,input[type="password"][disabled='disabled']+.button--copy-input,input[type="password"][disabled]+.button--copy-input,input[type="password"] .is-disabled+.button--copy-input,input[type="search"][disabled='disabled']+.button--copy-input,input[type="search"][disabled]+.button--copy-input,input[type="search"] .is-disabled+.button--copy-input,input[type="tel"][disabled='disabled']+.button--copy-input,input[type="tel"][disabled]+.button--copy-input,input[type="tel"] .is-disabled+.button--copy-input,input[type="text"][disabled='disabled']+.button--copy-input,input[type="text"][disabled]+.button--copy-input,input[type="text"] .is-disabled+.button--copy-input,input[type="time"][disabled='disabled']+.button--copy-input,input[type="time"][disabled]+.button--copy-input,input[type="time"] .is-disabled+.button--copy-input,input[type="url"][disabled='disabled']+.button--copy-input,input[type="url"][disabled]+.button--copy-input,input[type="url"] .is-disabled+.button--copy-input,input[type="week"][disabled='disabled']+.button--copy-input,input[type="week"][disabled]+.button--copy-input,input[type="week"] .is-disabled+.button--copy-input,textarea[disabled='disabled']+.button--copy-input,textarea[disabled]+.button--copy-input,textarea .is-disabled+.button--copy-input,.input[disabled='disabled']+.button--copy-input,.input[disabled]+.button--copy-input,.input .is-disabled+.button--copy-input{box-shadow:none;background:#dadbdd;color:#bcbdbf;cursor:default}input[type="color"]:hover,input[type="date"]:hover,input[type="datetime"]:hover,input[type="datetime-local"]:hover,input[type="email"]:hover,input[type="month"]:hover,input[type="number"]:hover,input[type="password"]:hover,input[type="search"]:hover,input[type="tel"]:hover,input[type="text"]:hover,input[type="time"]:hover,input[type="url"]:hover,input[type="week"]:hover,textarea:hover,.input:hover{border-color:#e4e5e7}input[type="color"]:focus,input[type="color"].active,input[type="date"]:focus,input[type="date"].active,input[type="datetime"]:focus,input[type="datetime"].active,input[type="datetime-local"]:focus,input[type="datetime-local"].active,input[type="email"]:focus,input[type="email"].active,input[type="month"]:focus,input[type="month"].active,input[type="number"]:focus,input[type="number"].active,input[type="password"]:focus,input[type="password"].active,input[type="search"]:focus,input[type="search"].active,input[type="tel"]:focus,input[type="tel"].active,input[type="text"]:focus,input[type="text"].active,input[type="time"]:focus,input[type="time"].active,input[type="url"]:focus,input[type="url"].active,input[type="week"]:focus,input[type="week"].active,textarea:focus,textarea.active,.input:focus,.input.active{border-color:#4285F4;box-shadow:none}input[type="color"].input--console,input[type="date"].input--console,input[type="datetime"].input--console,input[type="datetime-local"].input--console,input[type="email"].input--console,input[type="month"].input--console,input[type="number"].input--console,input[type="password"].input--console,input[type="search"].input--console,input[type="tel"].input--console,input[type="text"].input--console,input[type="time"].input--console,input[type="url"].input--console,input[type="week"].input--console,textarea.input--console,.input.input--console{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;border-color:transparent;cursor:text;font-family:"Roboto Mono", "Source Code Pro";height:30px;opacity:1;padding:0px 34px 0px 4px;position:relative}input[type="color"].input--console:focus,input[type="date"].input--console:focus,input[type="datetime"].input--console:focus,input[type="datetime-local"].input--console:focus,input[type="email"].input--console:focus,input[type="month"].input--console:focus,input[type="number"].input--console:focus,input[type="password"].input--console:focus,input[type="search"].input--console:focus,input[type="tel"].input--console:focus,input[type="text"].input--console:focus,input[type="time"].input--console:focus,input[type="url"].input--console:focus,input[type="week"].input--console:focus,textarea.input--console:focus,.input.input--console:focus{border-color:#4285F4}input[type="color"].input--code,input[type="date"].input--code,input[type="datetime"].input--code,input[type="datetime-local"].input--code,input[type="email"].input--code,input[type="month"].input--code,input[type="number"].input--code,input[type="password"].input--code,input[type="search"].input--code,input[type="tel"].input--code,input[type="text"].input--code,input[type="time"].input--code,input[type="url"].input--code,input[type="week"].input--code,textarea.input--code,.input.input--code{background:#f3f4f6;border:none;border-radius:2px 0 0 2px;cursor:text;display:inline-block;font-family:"Roboto Mono", "Source Code Pro";font-size:15px;height:auto;line-height:1.5;padding:2px 3px}textarea{height:auto}.input--calendar{background:url(//dgfy547layodx.cloudfront.net/assets/admin/icon_calendar-585caa2f5b4e34541b559c4c8edde224acb7a3849d2c1ae860bbc5a450cb3812.png) no-repeat right 8px center;background-size:16px 17px;cursor:pointer}.input--calendar:hover{background-image:url(//dgfy547layodx.cloudfront.net/assets/admin/icon_calendar--hover-9c30db0f2d7a2206c4c5235a3b33530fde08a4eb3c679b842910160717aeea47.png)}.input--calendar:focus,.input--calendar.active{background-image:url(//dgfy547layodx.cloudfront.net/assets/admin/icon_calendar--active-8b6011db1eaf4ca6e07e0a53194dbd0021a1fce9b443fd54400949cc1717689c.png)}.md-input{padding:16px 0;position:relative;width:100%}.md-input--horizontal{padding-top:0}.md-input--condensed{padding:11px 0}.md-input__container{font-size:16px;position:relative;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.md-input--horizontal .md-input__container{padding-left:162px}.md-input__input{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;background-color:transparent !important;border:none !important;border-radius:0 !important;box-shadow:none !important;color:rgba(0,0,0,0.87) !important;display:block !important;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif !important;font-size:inherit !important;font-weight:400 !important;letter-spacing:normal !important;line-height:1.3 !important;height:auto !important;padding:8px !important;position:relative !important;-webkit-transition:inherit !important;transition:inherit !important;width:100% !important;z-index:2 !important}.md-input__input[type='file']{padding:8px 0 !important}.md-input--condensed .md-input__input{font-size:14px !important;padding:3px !important}.md-input--select .md-input__input{cursor:pointer;padding-right:24px}.md-input__borders{position:absolute;top:0;right:0;bottom:0;left:0;border-bottom:1px solid #ddd;color:#aaa;font-size:inherit;padding:8px;text-transform:none;-webkit-transition:inherit !important;transition:inherit !important;z-index:1}.md-input--condensed .md-input__borders{padding:3px}.md-input--horizontal .md-input__borders{left:162px}input[type='file']+.md-input__borders{border:none !important}textarea+.md-input__borders{border:1px solid #ddd}.has-error .md-input__borders{border-color:#DB4437 !important}.md-input__borders:before{position:absolute;top:nil;right:0px;bottom:-1px;left:0px;background:#4285F4;border:1px solid #4285F4;content:'';display:block;height:0px;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transition:inherit;transition:inherit;z-index:2}.md-input--horizontal .md-input__borders:before{-webkit-transform-origin:0% 50%;transform-origin:0% 50%}*:focus+.md-input__borders:before{-webkit-transform:scaleX(1);transform:scaleX(1)}input[type='file']+.md-input__borders:before{background:#4285F4;border:none;-webkit-transform:scaleX(1) !important;transform:scaleX(1) !important}textarea+.md-input__borders:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;background:transparent;border:2px solid transparent;height:auto;-webkit-transform:scaleX(1);transform:scaleX(1)}textarea:focus+.md-input__borders:before{border:2px solid #4285F4}.has-error .md-input__borders:before{border-color:#DB4437}.has-error textarea+.md-input__borders:before{border-color:transparent}.has-error textarea:focus+.md-input__borders:before{border-color:#DB4437}.md-input__label{color:#aaa !important;display:block !important;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif !important;font-size:inherit !important;font-weight:400 !important;letter-spacing:normal !important;line-height:1.3 !important;margin:0 !important;text-transform:none !important;-webkit-transform:translate(0px, 0px) scale(1);transform:translate(0px, 0px) scale(1);-webkit-transform-origin:0 0 !important;transform-origin:0 0 !important;-webkit-transition:inherit !important;transition:inherit !important}.md-input--condensed .md-input__label{font-size:14px !important}.md-input--horizontal .md-input__label{-webkit-transform:translate(-170px, 0px) scale(1) !important;transform:translate(-170px, 0px) scale(1) !important}*:focus+* .md-input__label,*.is-filled+* .md-input__label,input[type='file']+* .md-input__label,.md-input--select .md-input__label{-webkit-transform:translate(-8px, -24px) scale(0.75);transform:translate(-8px, -24px) scale(0.75)}.md-input--condensed *:focus+* .md-input__label,.md-input--condensed *.is-filled+* .md-input__label{-webkit-transform:translate(-3px, -15px) scale(0.75);transform:translate(-3px, -15px) scale(0.75)}.md-input--condensed textarea:focus+* .md-input__label,.md-input--condensed textarea.is-filled+* .md-input__label{-webkit-transform:translate(-3px, -18px) scale(0.75);transform:translate(-3px, -18px) scale(0.75)}*:focus+* .md-input__label{color:#4285F4 !important}.has-error .md-input__label{color:#DB4437 !important}.md-input__error{position:absolute;top:nil;right:nil;bottom:0;left:0;color:#999;font-size:12px;margin:0}.has-error .md-input__error{color:#DB4437 !important}.md-input__hint{color:#aaa;font-size:12px}.md-input--horizontal .md-input__hint{padding-left:162px}.header-tab{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:2px solid transparent;color:rgba(255,255,255,0.7);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;font-weight:300;height:48px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-transform:uppercase;width:160px}.header-tab.is-active{border-bottom-color:white;color:white;font-weight:500}.header-tab:hover{color:white;text-decoration:none}@media (max-width: 600px){.header-tab{-webkit-box-flex:1;-ms-flex:1;flex:1;width:auto}}.header-container{background:#4285F4;box-shadow:0 3px 6px rgba(0,0,0,0.2);z-index:30}.header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:56px;padding:0 24px 0 20px;position:relative}@media (max-width: 960px){.header{padding:0 16px}}.header__title{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#FFFFFF;display:-webkit-box;display:-ms-flexbox;display:flex}.header__title h1{font-size:20px;font-weight:400;line-height:1.3}@media (max-width: 600px){.header__title h1{font-size:19px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100vw - 160px)}}.header__title .mdl-button{margin-left:-8px;margin-right:8px}.header__actions{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:auto}.header__actions>*:not(:first-child){margin-left:24px}.header__button{color:#FFFFFF;text-decoration:none}.header__button--nav{margin-right:44px}@media (max-width: 600px){.header__button--nav{margin-right:16px}}.header__button--search{display:none}@media (max-width: 960px){.header__button--search{display:block}}.header__search{position:absolute;top:8px;right:nil;bottom:nil;left:25%;width:50%}@media (max-width: 960px){.header__search{display:none}}.header__search-bar{position:fixed;top:0;right:0;bottom:nil;left:0;-webkit-transition:-webkit-transform 0.175s cubic-bezier(0.4, 0, 0.6, 1);transition:-webkit-transform 0.175s cubic-bezier(0.4, 0, 0.6, 1);transition:transform 0.175s cubic-bezier(0.4, 0, 0.6, 1);transition:transform 0.175s cubic-bezier(0.4, 0, 0.6, 1),-webkit-transform 0.175s cubic-bezier(0.4, 0, 0.6, 1);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:white;color:rgba(0,0,0,0.87);display:-webkit-box;display:-ms-flexbox;display:flex;height:56px;padding:0 24px;-webkit-transform:translateY(-100%);transform:translateY(-100%);z-index:31}.header__search-bar .header__button{color:rgba(0,0,0,0.87)}.header__search-bar form{position:relative;width:100%}.header__search-bar input[type='text']{border:none;color:rgba(0,0,0,0.87);font-size:18px;margin-right:24px;padding:0px}.header__search-bar input[type='text']:focus{border-bottom-color:#4285F4}.header__search-bar input[type='text']::-webkit-input-placeholder{color:#ccc}.header__search-bar input[type='text']:-ms-input-placeholder{color:#ccc}.header__search-bar input[type='text']::placeholder{color:#ccc}.header__search-bar.is-open{-webkit-transition:-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.2s cubic-bezier(0, 0, 0.2, 1),-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);-webkit-transform:translateY(0);transform:translateY(0)}@media (max-width: 600px){.header__search-bar{padding:0 16px}}.header__search input#keywords{background:url(//dgfy547layodx.cloudfront.net/assets/search_icon_placeholder-759bf5eb97192b4deb4b2b64e334028cddfbd7cd375e2f739ba0c26304e349e8.svg) no-repeat 16px center rgba(255,255,255,0.1);border:none;color:white;height:40px;padding:0 16px 0 48px;width:100%}.header__search input#keywords::-webkit-input-placeholder{color:rgba(255,255,255,0.5)}.header__search input#keywords:-ms-input-placeholder{color:rgba(255,255,255,0.5)}.header__search input#keywords::placeholder{color:rgba(255,255,255,0.5)}.header__search input#keywords:focus{background-image:url(//dgfy547layodx.cloudfront.net/assets/search_icon-e52f6289bef7c183bd3d1c425af2a6a3ec563ca57b7465039d0bb8617a497062.svg)}.header__search input#keywords:focus::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}.header__search input#keywords:focus:-ms-input-placeholder{color:rgba(255,255,255,0.3)}.header__search input#keywords:focus::placeholder{color:rgba(255,255,255,0.3)}@media (max-width: 600px){.header__side-menu-button{display:none}}.header__menu{color:white}.header__menu .mdl-menu__container{margin-top:-32px}.header__menu--my-account button,.header__menu--side-my-account button{height:40px;width:40px}.header__menu--my-account button .material-icons,.header__menu--side-my-account button .material-icons{height:32px;-webkit-transform:translate(-16px, -16px);transform:translate(-16px, -16px);width:32px}.header__menu--my-account button .material-icons img,.header__menu--side-my-account button .material-icons img{border:none;box-shadow:none;height:100%;width:100%}.header__menu__item a{color:rgba(0,0,0,0.87);display:block;text-decoration:none !important}.header__tabs{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 24px 0 72px}@media (max-width: 600px){.header__tabs{background:rgba(255,255,255,0.1);padding:0}}h1,h2,h3,h4,h5,h6{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;line-height:1.2;margin:0px}h1{font-size:40px;font-weight:700}h2{font-size:34px;font-weight:700}h3{font-size:28px;font-weight:400}h4{font-size:18px;font-weight:400;text-transform:uppercase}h5{font-size:15px;font-weight:700;text-transform:uppercase}.hover-menu__menu__item{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;background:#FFFFFF;border:2px solid #ebeef4;cursor:pointer;display:block;padding:0.75rem;width:100%}.hover-menu__menu__item:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.hover-menu__menu__item:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.hover-menu__menu__item:not(:last-child){border-bottom:none}.hover-menu__menu__item:hover{background:#F8F9FB;color:#1266f1}.hover-menu__menu__item{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none;text-transform:uppercase}.hover-menu{position:relative;z-index:1}.hover-menu:hover{z-index:2}.hover-menu:hover .hover-menu__menu{-webkit-transform:translateY(0px) scale(1);transform:translateY(0px) scale(1);opacity:1}.hover-menu__trigger{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex}.hover-menu__trigger>*:not(:last-child){margin-right:3px}.hover-menu__menu{position:absolute;top:30px;right:0px;bottom:nill;left:nil;-webkit-transform:translateY(-20px) scale(0.1);transform:translateY(-20px) scale(0.1);-webkit-transform-origin:right top;transform-origin:right top;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;background:#FFFFFF;border-radius:2px;box-shadow:3px 3px 0px rgba(0,0,0,0.1);opacity:0;width:210px}span.hover-menu__menu__item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex}span.hover-menu__menu__item img{display:block;margin-right:0.75rem}span.hover-menu__menu__item:hover{color:inherit}.hover-menu__menu__item--bold{background:#F4B400;border-color:#dca200;color:#FFFFFF}.hover-menu__menu__item--bold:hover{background:#e8ab00;color:#FFFFFF}.hover-menu--lab-locales .hover-menu__menu{-webkit-transform:translateY(-10px) scale(0.1);transform:translateY(-10px) scale(0.1);top:10px;width:145px}.hover-menu--lab-assessment .hover-menu__menu{-webkit-transform:translateY(-15px) scale(0.1);transform:translateY(-15px) scale(0.1);top:15px;width:300px}.hover-menu--lab-assessment .hover-menu__menu__item p:last-child{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;background:#4285F4;border-radius:20px;color:#FFFFFF;margin-left:auto;padding:4px;text-align:center;width:65px}.join__activate,.join__logo{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.join__activate{position:fixed;top:nil;right:0px;bottom:0px;left:0px;height:40px;width:100vw;background:#47E7AE;box-shadow:0px -4px 0px rgba(0,0,0,0.1)}.join__activate img{height:auto;width:120px;margin-right:1.5rem}.join__activate a{color:white}.join__activate strong{font-weight:700;text-decoration:underline}.join__body{padding:1.5rem}.join__container{background:#FFFFFF;border-radius:2px;box-shadow:3px 3px 0px rgba(0,0,0,0.1)}.join__header{background:#F4B400;border-top-left-radius:2px;border-top-right-radius:2px;color:#FFFFFF;padding:0.75rem 1.5rem;text-align:center}.join__link{color:#FFFFFF;display:block;font-size:14px;text-align:center}.join__link a{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;color:#FFFFFF;cursor:pointer;text-decoration:none;font-weight:700;text-decoration:underline}.join__link a:hover{text-decoration:underline}.join__links{margin-top:1.5rem}.join__logo{margin-bottom:1.5rem}.join__logo a{display:block}.join__logo__qwiklabs{display:block;width:180px}.join__logo__other{display:block;margin-left:3rem;width:180px}.lab-access-modal{display:-webkit-box;display:-ms-flexbox;display:flex}.lab-access-modal__method{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.lab-access-modal__method:not(:last-child){margin-right:1.5rem}.lab-access-modal__method .button{margin-top:auto}.lab-access-modal__code{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:0.75rem}.lab-access-modal__code input{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;width:0px !important}.lab-access-modal__code input:not(:last-child){margin-right:0.75rem}.lab-assessment__tab{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.lab-assessment__tab,.lab-assessment__panel{position:fixed;top:150px;right:0px;bottom:nil;left:nil;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#47E7AE;border-bottom-left-radius:2px;box-shadow:3px 3px 0 rgba(0,0,0,0.1);color:#FFFFFF;z-index:21}.lab-assessment__tab{height:75px;width:100px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-top-left-radius:2px;cursor:pointer;z-index:21}.lab-assessment__tab.is-open{-webkit-transform:translateX(-500px);transform:translateX(-500px)}.lab-assessment__panel{height:auto;width:500px;-webkit-transform:translateX(500px);transform:translateX(500px);padding:1.5rem}.lab-assessment__panel.is-open{-webkit-transform:translateX(0px);transform:translateX(0px)}.lab-assessment__step{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.lab-assessment__step:not(:last-child){border-bottom:2px solid rgba(255,255,255,0.3);padding-bottom:0.75rem;margin-bottom:0.75rem}.lab-assessment__step__title{width:70%}.lab-assessment__step__score{background:rgba(255,255,255,0.85);border-radius:2px;color:#47E7AE;margin-left:auto;padding:5px;text-align:center;width:70px}.lab-content{height:100%;width:100%;-webkit-overflow-scrolling:touch;background:#FFFFFF;overflow-y:auto;position:absolute;z-index:21}.lab-content__drm,.lab-content__pdf{border:none}.lab-content__markdown-wrapper{max-width:1024px;margin:80px auto 160px auto;padding:0 40px}@media (max-width: 1344px){.lab-content__markdown-wrapper{padding:0 32px}}.lab-content__markdown{width:calc(100% - 304px)}@media (max-width: 1344px){.lab-content__markdown{width:calc(100% - 240px)}}@media (max-width: 1120px){.lab-content__markdown{margin:0 auto;max-width:640px;width:100%}}.lab-content__image{background:#fff;border-radius:2px;box-shadow:0 8px 8px rgba(0,0,0,0.2);margin:auto;padding:3rem;max-width:100%}.lab-content__image-overlay{display:-webkit-box;display:-ms-flexbox;display:flex;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,0.85);cursor:zoom-out;padding:100px;z-index:999}.lab-content__outline{margin-left:696px;max-height:70vh;overflow-y:auto;position:fixed;top:192px;width:240px}.lab-content__outline a{color:rgba(0,0,0,0.54);display:block;font-size:14px;font-weight:400;margin-bottom:8px}.lab-content__outline a.is-active{color:rgba(0,0,0,0.87);font-weight:700}.lab-content__outline ul{list-style:none}.lab-content__outline li{line-height:1.2}@media (max-width: 1344px){.lab-content__outline{margin-left:0px;right:47px;width:200px}}@media (max-width: 1120px){.lab-content__outline{display:none}}.lab-header{height:100%;width:100%;background:#EEF1F4;border-bottom:3px solid #FFFFFF;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;position:relative}.lab-header:after{position:absolute;top:nil;right:0;bottom:-3px;left:0;height:10px;width:100%;-webkit-transition:opacity .2s ease-in;transition:opacity .2s ease-in;border-radius:100%;box-shadow:0 0 20px rgba(0,0,0,0.5);content:'';display:block;margin:0 auto;max-width:700px;opacity:0;z-index:-1}.lab-header.has-shadow:after{opacity:1}.lab-header__section{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:3px solid #FFFFFF;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 0.75rem}.lab-header__section:first-child{border-left:none}.lab-header__section--flex{-webkit-box-flex:1;-ms-flex:1;flex:1}.lab-header__section--no-border{border-left:none}.lab-header__progress{height:15px;width:100%;-webkit-transition:all .8s ease-in-out;transition:all .8s ease-in-out;background:#FFFFFF;border-radius:15px;display:block;opacity:1;overflow:hidden}.lab-header__progress.is-hidden{opacity:0}.lab-header__progress__bar{-webkit-transition:width 5s ease-in-out;transition:width 5s ease-in-out;background:#47E7AE;display:block;height:100%;width:0%}.lab-header__progress-message{-webkit-transition:all .8s ease-in-out;transition:all .8s ease-in-out;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;opacity:1}.lab-header__progress-message.is-hidden{opacity:0}.lab-header__progress-message .is-hidden{display:none}.lab-header__progress-message__indicator{height:12px;width:12px;background:#d6d9dc;border-radius:50%;content:'';display:block;margin-right:5px}.lab-header__progress-message__indicator.is-complete{radial-gradient:circle at 50% 10%, #D6EF54, #8ED525;border:1px solid #a5dd51;box-shadow:0px 0px 8px rgba(142,213,37,0.5),inset 0 1px 2px #D6EF54,inset 0 -1px 2px #8dd325}.lab-header__section h3 span{position:relative;top:-7px;right:nil;bottom:nil;left:nil;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;margin:0 1px}.lab-resource{position:absolute;top:0.75rem;right:0.75rem;bottom:0.75rem;left:0.75rem;-webkit-transform:translateY(110%);transform:translateY(110%);background:#FFFFFF;border-radius:2px;box-shadow:3px 3px 0px rgba(0,0,0,0.1);opacity:.3;overflow-y:auto;padding:45px;z-index:23}.lab-resource.is-open{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;opacity:1}.lab-resource__background{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a1425;opacity:0;z-index:20}.lab-resource__background.is-visible{-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;opacity:.75;z-index:22}.lab-resource__close{position:absolute;top:8px;right:18px;bottom:nil;left:nil;color:rgba(0,0,0,0.54);cursor:pointer;font-size:24px}.lab-resource__video-container{margin:0 auto;width:83%}.lab-resource__video{height:0;position:relative;padding-bottom:56.25%;padding-top:25px}.lab-resource__video iframe{position:absolute;top:0;right:nil;bottom:nil;left:0;height:100%;width:100%}.lab-sidebar__slider{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.lab-sidebar{height:100%;width:100%;-webkit-overflow-scrolling:touch;background:#e7eaed;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;overflow-y:auto;z-index:23}.lab-sidebar__header{margin:0.75rem}.lab-sidebar__header-row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:5px}.lab-sidebar__header-row i{font-size:14px}.lab-sidebar__tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.lab-sidebar__title{font-size:24px;margin-bottom:5px}.lab-sidebar__title a{color:rgba(0,0,0,0.87)}.lab-sidebar__resource:not(:last-child){margin-bottom:1.5rem}.lab-sidebar__resource--additional-details{-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;opacity:0}.lab-sidebar__resource--additional-details.is-hidden{display:none}.lab-sidebar__resource--additional-details.is-visible{opacity:1}.lab-sidebar__slider{position:absolute;top:nil;right:-30px;bottom:1.5rem;left:nil;height:30px;width:33px;background:#e7eaed;border-top-right-radius:2px;border-bottom-right-radius:2px;box-shadow:3px 3px 0px rgba(0,0,0,0.1);cursor:pointer;padding-left:3px;z-index:22}.lab-sidebar__slider i.fa{-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:all .5s ease;transition:all .5s ease;font-size:14px;line-height:1;padding:10px 10px 8px 10px;position:relative}.lab-sidebar__slider.is-hidden i.fa{-webkit-transform:rotate(180deg);transform:rotate(180deg);padding:8px 10px 10px 10px}.landing{background:#f3f4f6}.landing .header-container{box-shadow:none}.landing .side-menu{width:0px}.landing .flash{position:fixed;top:nil;right:nil;bottom:1.5rem;left:1.5rem;box-shadow:0px 6px 12px rgba(0,0,0,0.4),0px 0px 4px rgba(0,0,0,0.25),inset 0px 1px 0px rgba(255,255,255,0.5);max-width:500px;z-index:999}.landing__hero{background:#4285F4;color:#FFFFFF;padding:80px 0 96px 0;position:relative;z-index:29}.landing__hero h1,.landing__hero h2{font-family:"Roboto Slab", sans-serif;font-weight:300;padding:0 24px;text-transform:none}.landing__hero h1{font-size:64px;margin-bottom:24px;max-width:800px}@media (max-width: 600px){.landing__hero h1{font-size:48px}}.landing__hero h2{font-size:24px;line-height:1.5;max-width:740px}.landing__hero a{background:white;color:#4285F4;font-size:16px;height:56px;line-height:56px;margin:48px 0 0 24px;padding:0 32px}.landing__hero a:hover{background:white;color:#4285F4}.landing__fake-shadow{position:absolute;top:nil;right:nil;bottom:-12px;left:0;height:12px;width:100%;linear-gradient:rgba(0,0,0,0.33),transparent;background-color:transparent;z-index:200}.landing__fake-shadow.is-stuck{position:fixed;top:60px;right:nil;bottom:nil;left:0px}.landing__tiles{-webkit-transform:translateY(80px);transform:translateY(80px);-webkit-transition:opacity 1s ease-out,-webkit-transform 1.5s cubic-bezier(0.075, 0.82, 0.165, 1);transition:opacity 1s ease-out,-webkit-transform 1.5s cubic-bezier(0.075, 0.82, 0.165, 1);transition:opacity 1s ease-out,transform 1.5s cubic-bezier(0.075, 0.82, 0.165, 1);transition:opacity 1s ease-out,transform 1.5s cubic-bezier(0.075, 0.82, 0.165, 1),-webkit-transform 1.5s cubic-bezier(0.075, 0.82, 0.165, 1);margin-bottom:120px;opacity:0}.landing__tiles.is-visible{-webkit-transform:translateY(0px);transform:translateY(0px);opacity:1}.landing__footer{text-align:center}.landing__footer img{display:block;margin:0 auto 16px auto;width:150px}.landing__footer a{color:rgba(0,0,0,0.54);display:inline-block;font-weight:400}.landing__footer a:not(:last-child){margin-right:24px}.sort_link.asc:after,.sort_link.desc:after{font-family:'Material Icons';margin-left:3px;position:absolute;text-decoration:none}a,.link{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;color:#4285F4;cursor:pointer;text-decoration:none}a:hover,.link:hover{text-decoration:underline}a i.fa,.link i.fa{font-size:10px}a span i.fa,.link span i.fa{margin-right:5px}.link--console{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none}.link--console.is-disabled{color:rgba(0,0,0,0.54);cursor:default;text-decoration:none}.link--console.is-disabled+i{color:rgba(0,0,0,0.54)}.link--danger{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;color:#DB4437;cursor:pointer;text-decoration:none}.link--danger:hover{text-decoration:underline}.sort_link{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;color:rgba(0,0,0,0.54);cursor:pointer;text-decoration:none;border-bottom:1px dotted #999;font-weight:600;position:relative;text-decoration:none !important}.sort_link:hover{text-decoration:underline}.sort_link.asc,.sort_link.desc{color:rgba(0,0,0,0.87)}.sort_link.asc:after{color:#aaa;content:'arrow_upward'}.sort_link.desc:after{color:#999;content:'arrow_downward'}.list--custom-icons li{list-style:none;padding-left:20px;position:relative}.list--custom-icons li>i{position:absolute;top:0px;left:0px;font-size:12px}.logo{height:22px;width:117px;background:url(//dgfy547layodx.cloudfront.net/assets/logo_white-a214ebbbc0c1ac85398c4a8f8012380b0c999c330e3278cc3f817b98f5cfd260.svg) no-repeat;background-size:100%;display:block}.logo--blue{background-image:url(//dgfy547layodx.cloudfront.net/assets/logo_blue-14d73fc49cc34843f95c273a4260ec5a4bdca4cf56f63c83e39665a8a9631353.svg)}.logo--white{background-image:url(//dgfy547layodx.cloudfront.net/assets/logo_white-a214ebbbc0c1ac85398c4a8f8012380b0c999c330e3278cc3f817b98f5cfd260.svg)}.logo--footer{height:29px;width:154px}.custom-logo{display:block}.custom-logo img{display:block;height:28px}.markdown-lab-instructions#markdown-lab-instructions a,.markdown-lab-instructions#markdown-lab-instructions h1,.markdown-lab-instructions#markdown-lab-instructions h2,.markdown-lab-instructions#markdown-lab-instructions h3,.markdown-lab-instructions#markdown-lab-instructions h4,.markdown-lab-instructions#markdown-lab-instructions h5,.markdown-lab-instructions#markdown-lab-instructions h6,.markdown-lab-instructions#markdown-lab-instructions p,.markdown-lab-instructions#markdown-lab-instructions ul,.markdown-lab-instructions#markdown-lab-instructions ol,.markdown-lab-instructions#markdown-lab-instructions li,.markdown-lab-instructions#markdown-lab-instructions blockquote,.markdown-lab-instructions#markdown-lab-instructions pre{color:rgba(0,0,0,0.87);font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:17px;font-weight:400;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;line-height:1.6}@media (max-width: 1344px){.markdown-lab-instructions#markdown-lab-instructions a,.markdown-lab-instructions#markdown-lab-instructions h1,.markdown-lab-instructions#markdown-lab-instructions h2,.markdown-lab-instructions#markdown-lab-instructions h3,.markdown-lab-instructions#markdown-lab-instructions h4,.markdown-lab-instructions#markdown-lab-instructions h5,.markdown-lab-instructions#markdown-lab-instructions h6,.markdown-lab-instructions#markdown-lab-instructions p,.markdown-lab-instructions#markdown-lab-instructions ul,.markdown-lab-instructions#markdown-lab-instructions ol,.markdown-lab-instructions#markdown-lab-instructions li,.markdown-lab-instructions#markdown-lab-instructions blockquote,.markdown-lab-instructions#markdown-lab-instructions pre{font-size:16px}}@media (max-width: 1120px){.markdown-lab-instructions#markdown-lab-instructions a,.markdown-lab-instructions#markdown-lab-instructions h1,.markdown-lab-instructions#markdown-lab-instructions h2,.markdown-lab-instructions#markdown-lab-instructions h3,.markdown-lab-instructions#markdown-lab-instructions h4,.markdown-lab-instructions#markdown-lab-instructions h5,.markdown-lab-instructions#markdown-lab-instructions h6,.markdown-lab-instructions#markdown-lab-instructions p,.markdown-lab-instructions#markdown-lab-instructions ul,.markdown-lab-instructions#markdown-lab-instructions ol,.markdown-lab-instructions#markdown-lab-instructions li,.markdown-lab-instructions#markdown-lab-instructions blockquote,.markdown-lab-instructions#markdown-lab-instructions pre{font-size:17px}}.markdown-lab-instructions#markdown-lab-instructions.no-select{cursor:default}.markdown-lab-instructions#markdown-lab-instructions.no-select a,.markdown-lab-instructions#markdown-lab-instructions.no-select h1,.markdown-lab-instructions#markdown-lab-instructions.no-select h2,.markdown-lab-instructions#markdown-lab-instructions.no-select h3,.markdown-lab-instructions#markdown-lab-instructions.no-select h4,.markdown-lab-instructions#markdown-lab-instructions.no-select h5,.markdown-lab-instructions#markdown-lab-instructions.no-select h6,.markdown-lab-instructions#markdown-lab-instructions.no-select p,.markdown-lab-instructions#markdown-lab-instructions.no-select ul,.markdown-lab-instructions#markdown-lab-instructions.no-select ol,.markdown-lab-instructions#markdown-lab-instructions.no-select li,.markdown-lab-instructions#markdown-lab-instructions.no-select blockquote{cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.markdown-lab-instructions#markdown-lab-instructions a{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;color:#4285F4;cursor:pointer;border-bottom:1px solid #4285F4}.markdown-lab-instructions#markdown-lab-instructions a:hover{border-bottom:2px solid #3d82f4;color:#2a75f3;text-decoration:none}.markdown-lab-instructions#markdown-lab-instructions h1,.markdown-lab-instructions#markdown-lab-instructions h2,.markdown-lab-instructions#markdown-lab-instructions h3,.markdown-lab-instructions#markdown-lab-instructions h4{line-height:1.2}.markdown-lab-instructions#markdown-lab-instructions h1 strong,.markdown-lab-instructions#markdown-lab-instructions h2 strong,.markdown-lab-instructions#markdown-lab-instructions h3 strong,.markdown-lab-instructions#markdown-lab-instructions h4 strong{font-weight:inherit}.markdown-lab-instructions#markdown-lab-instructions>h1:first-of-type,.markdown-lab-instructions#markdown-lab-instructions h1.lab-title{color:rgba(0,0,0,0.87);font-family:'Roboto Condensed', sans-serif;font-size:64px;font-weight:400;margin-bottom:160px;margin-top:0px}@media (max-width: 1344px){.markdown-lab-instructions#markdown-lab-instructions>h1:first-of-type,.markdown-lab-instructions#markdown-lab-instructions h1.lab-title{font-size:56px}}.markdown-lab-instructions#markdown-lab-instructions h1{font-family:'Roboto Slab', serif;font-size:30px;font-weight:700;margin-top:160px;margin-bottom:32px}.markdown-lab-instructions#markdown-lab-instructions h2{font-family:'Roboto Slab', serif;font-size:30px;font-weight:700;margin-top:160px;margin-bottom:32px}@media (max-width: 1344px){.markdown-lab-instructions#markdown-lab-instructions h2{font-size:28px}}.markdown-lab-instructions#markdown-lab-instructions h3{font-family:'Roboto', sans-serif;font-size:24px;font-weight:400;margin-top:56px;margin-bottom:32px}@media (max-width: 1344px){.markdown-lab-instructions#markdown-lab-instructions h3{font-size:22px}}.markdown-lab-instructions#markdown-lab-instructions h4{font-size:16px;font-weight:700;margin-top:1.5rem;margin-bottom:1.5rem}.markdown-lab-instructions#markdown-lab-instructions p,.markdown-lab-instructions#markdown-lab-instructions ul,.markdown-lab-instructions#markdown-lab-instructions ol{margin-bottom:24px}.markdown-lab-instructions#markdown-lab-instructions ol{margin-bottom:1.5rem}.markdown-lab-instructions#markdown-lab-instructions h1+ol,.markdown-lab-instructions#markdown-lab-instructions h2+ol,.markdown-lab-instructions#markdown-lab-instructions h3+ol{margin-top:0}.markdown-lab-instructions#markdown-lab-instructions ul{padding-left:1.5rem}.markdown-lab-instructions#markdown-lab-instructions ul li{list-style:disc}.markdown-lab-instructions#markdown-lab-instructions ol ol,.markdown-lab-instructions#markdown-lab-instructions ol ul,.markdown-lab-instructions#markdown-lab-instructions ul ol,.markdown-lab-instructions#markdown-lab-instructions ul ul{margin-top:1.5rem;padding-left:48px}.markdown-lab-instructions#markdown-lab-instructions ol li:not(:last-child){margin-bottom:1.5rem}.markdown-lab-instructions#markdown-lab-instructions blockquote{border-left:none;font-style:normal}.markdown-lab-instructions#markdown-lab-instructions blockquote:before,.markdown-lab-instructions#markdown-lab-instructions blockquote:after{display:none}.markdown-lab-instructions#markdown-lab-instructions img{cursor:zoom-in;margin:1.5rem auto;max-width:100%}@media (max-width: 600px){.markdown-lab-instructions#markdown-lab-instructions img{max-width:100% !important}}.markdown-lab-instructions#markdown-lab-instructions strong{font-weight:700}.markdown-lab-instructions#markdown-lab-instructions table{border-collapse:collapse;width:100%}.markdown-lab-instructions#markdown-lab-instructions table tr:hover{background:#F8F9FB}.markdown-lab-instructions#markdown-lab-instructions table th,.markdown-lab-instructions#markdown-lab-instructions table td{padding:8px;font-size:14px}.markdown-lab-instructions#markdown-lab-instructions table th{background:#ebeef4;border:1px solid #ebeef4;color:rgba(0,0,0,0.87);font-weight:700;text-align:left}.markdown-lab-instructions#markdown-lab-instructions table td{border:1px solid #ebeef4}.markdown-lab-instructions#markdown-lab-instructions table p,.markdown-lab-instructions#markdown-lab-instructions table ul,.markdown-lab-instructions#markdown-lab-instructions table li,.markdown-lab-instructions#markdown-lab-instructions table a{font-size:14px}.markdown-lab-instructions#markdown-lab-instructions table p:last-child,.markdown-lab-instructions#markdown-lab-instructions table ul:last-child,.markdown-lab-instructions#markdown-lab-instructions table li:last-child,.markdown-lab-instructions#markdown-lab-instructions table a:last-child{margin-bottom:0}.markdown-lab-instructions#markdown-lab-instructions pre,.markdown-lab-instructions#markdown-lab-instructions code,.markdown-lab-instructions#markdown-lab-instructions code *{font-family:"Roboto Mono", "Source Code Pro";font-size:15px;line-height:1}.markdown-lab-instructions#markdown-lab-instructions code{background:rgba(0,0,0,0.05);border-radius:2px;padding:2px 3px}.markdown-lab-instructions#markdown-lab-instructions .copyable-inline-input{background:#f3f4f6;border:none;border-radius:2px;display:inline-block;font-family:"Roboto Mono", "Source Code Pro";font-size:15px;height:auto;line-height:1;max-width:100%;padding:2px 0px 2px 7px;width:auto}.markdown-lab-instructions#markdown-lab-instructions pre{background-color:#444;border-radius:2px;display:block;color:#ccc;cursor:text;margin-bottom:1.5rem;position:relative;width:100%;z-index:2}.markdown-lab-instructions#markdown-lab-instructions pre code{background:none;border-radius:0;display:block;font-size:13px;line-height:1.6;overflow-x:auto;padding:0.75rem;width:100%}.markdown-lab-instructions#markdown-lab-instructions pre code *{font-size:13px;line-height:1.6}.markdown-lab-instructions#markdown-lab-instructions pre button{position:absolute;top:0.375rem;right:0.375rem;bottom:nil;left:nil;opacity:0}.markdown-lab-instructions#markdown-lab-instructions pre:hover button{opacity:1}.markdown-lab-instructions#markdown-lab-instructions .rouge-table{width:100%}.markdown-lab-instructions#markdown-lab-instructions .rouge-table td{border-color:transparent;padding:0}.markdown-lab-instructions#markdown-lab-instructions .rouge-table tr{background:#444 !important}.markdown-lab-instructions#markdown-lab-instructions .rouge-table pre{background:none;border-radius:0;font-size:13px;line-height:1.6;margin:0}.markdown-lab-instructions#markdown-lab-instructions .rouge-gutter{background:rgba(66,133,244,0.1);border-bottom-left-radius:2px;border-top-left-radius:2px;width:55px}.markdown-lab-instructions#markdown-lab-instructions .rouge-gutter pre{color:rgba(255,255,255,0.33);padding:20px 15px}.markdown-lab-instructions#markdown-lab-instructions .rouge-code{border-bottom-right-radius:2px;border-top-right-radius:2px;position:relative;overflow-x:auto}.markdown-lab-instructions#markdown-lab-instructions .rouge-code pre{position:absolute;top:20px;right:nil;bottom:nil;left:0px;padding:0px 15px;width:auto}.markdown-lab-instructions#markdown-lab-instructions aside,.markdown-lab-instructions#markdown-lab-instructions .codelabs-infobox{background-color:#f2f2f2;border-radius:2px;margin-bottom:1.5rem;padding:20px}.markdown-lab-instructions#markdown-lab-instructions aside p:last-child,.markdown-lab-instructions#markdown-lab-instructions .codelabs-infobox p:last-child{margin-bottom:0}.markdown-lab-instructions#markdown-lab-instructions aside.special,.markdown-lab-instructions#markdown-lab-instructions .codelabs-infobox-special{background-color:rgba(66,133,244,0.08)}.markdown-lab-instructions#markdown-lab-instructions aside.warning,.markdown-lab-instructions#markdown-lab-instructions .codelabs-infobox-warning{background-color:rgba(219,68,55,0.08)}.markdown-lab-instructions#markdown-lab-instructions .codelabs-downloadbutton{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-appearance:none;background:#4285F4;border:2px solid rgba(0,0,0,0.15);box-shadow:3px 3px 0px rgba(0,0,0,0.1);border-radius:2px;color:#FFFFFF;cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;font-weight:700;height:40px;line-height:1;padding:0px 20px;text-align:center;text-decoration:none;text-transform:uppercase;text-shadow:none}.markdown-lab-instructions#markdown-lab-instructions .codelabs-downloadbutton:hover,.markdown-lab-instructions#markdown-lab-instructions .codelabs-downloadbutton:focus{color:#fff;background:#2a75f3;text-decoration:none}.markdown-lab-instructions#markdown-lab-instructions .codelabs-downloadbutton:active{color:#fff;box-shadow:inset 3px 3px 1px rgba(0,0,0,0.07);text-decoration:none}.markdown-lab-instructions#markdown-lab-instructions pre .str,.markdown-lab-instructions#markdown-lab-instructions code .str{color:#65B042}.markdown-lab-instructions#markdown-lab-instructions pre .kwd,.markdown-lab-instructions#markdown-lab-instructions code .kwd{color:#E28964}.markdown-lab-instructions#markdown-lab-instructions pre .com,.markdown-lab-instructions#markdown-lab-instructions code .com{color:#AEAEAE;font-style:italic}.markdown-lab-instructions#markdown-lab-instructions pre .typ,.markdown-lab-instructions#markdown-lab-instructions code .typ{color:#89bdff}.markdown-lab-instructions#markdown-lab-instructions pre .lit,.markdown-lab-instructions#markdown-lab-instructions code .lit{color:#3387CC}.markdown-lab-instructions#markdown-lab-instructions pre .pun,.markdown-lab-instructions#markdown-lab-instructions code .pun{color:#fff}.markdown-lab-instructions#markdown-lab-instructions pre .pln,.markdown-lab-instructions#markdown-lab-instructions code .pln{color:#fff}.markdown-lab-instructions#markdown-lab-instructions pre .tag,.markdown-lab-instructions#markdown-lab-instructions code .tag{color:#89bdff}.markdown-lab-instructions#markdown-lab-instructions pre .atn,.markdown-lab-instructions#markdown-lab-instructions code .atn{color:#bdb76b}.markdown-lab-instructions#markdown-lab-instructions pre .atv,.markdown-lab-instructions#markdown-lab-instructions code .atv{color:#65B042}.markdown-lab-instructions#markdown-lab-instructions pre .dec,.markdown-lab-instructions#markdown-lab-instructions code .dec{color:#3387CC}.markdown-lab-instructions#markdown-lab-instructions pre.prettyprint,.markdown-lab-instructions#markdown-lab-instructions code.prettyprint{background-color:#28323f}.markdown-lab-instructions#markdown-lab-instructions pre.prettyprint{width:95%;margin:1em auto;overflow-x:auto;padding:1em;white-space:pre-wrap}.markdown-lab-instructions#markdown-lab-instructions ol.linenums{margin-top:0;margin-bottom:0;color:#AEAEAE}.markdown-lab-instructions#markdown-lab-instructions li.L0,.markdown-lab-instructions#markdown-lab-instructions li.L1,.markdown-lab-instructions#markdown-lab-instructions li.L2,.markdown-lab-instructions#markdown-lab-instructions li.L3,.markdown-lab-instructions#markdown-lab-instructions li.L5,.markdown-lab-instructions#markdown-lab-instructions li.L6,.markdown-lab-instructions#markdown-lab-instructions li.L7,.markdown-lab-instructions#markdown-lab-instructions li.L8{list-style-type:none}@media print{.markdown-lab-instructions#markdown-lab-instructions pre .str,.markdown-lab-instructions#markdown-lab-instructions code .str{color:#060}.markdown-lab-instructions#markdown-lab-instructions pre .kwd,.markdown-lab-instructions#markdown-lab-instructions code .kwd{color:#006;font-weight:bold}.markdown-lab-instructions#markdown-lab-instructions pre .com,.markdown-lab-instructions#markdown-lab-instructions code .com{color:#600;font-style:italic}.markdown-lab-instructions#markdown-lab-instructions pre .typ,.markdown-lab-instructions#markdown-lab-instructions code .typ{color:#404;font-weight:bold}.markdown-lab-instructions#markdown-lab-instructions pre .lit,.markdown-lab-instructions#markdown-lab-instructions code .lit{color:#044}.markdown-lab-instructions#markdown-lab-instructions pre .pun,.markdown-lab-instructions#markdown-lab-instructions code .pun{color:#440}.markdown-lab-instructions#markdown-lab-instructions pre .pln,.markdown-lab-instructions#markdown-lab-instructions code .pln{color:#000}.markdown-lab-instructions#markdown-lab-instructions pre .tag,.markdown-lab-instructions#markdown-lab-instructions code .tag{color:#006;font-weight:bold}.markdown-lab-instructions#markdown-lab-instructions pre .atn,.markdown-lab-instructions#markdown-lab-instructions code .atn{color:#404}.markdown-lab-instructions#markdown-lab-instructions pre .atv,.markdown-lab-instructions#markdown-lab-instructions code .atv{color:#060}}.mdl-menu__item{margin:0 !important}.modal-container{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.modal{position:fixed;top:0;right:0;bottom:0;left:0;-webkit-overflow-scrolling:touch;display:none;z-index:1050}.modal.fade .modal-content{-webkit-transform:translate(0, 35%);transform:translate(0, 35%);opacity:0.3}.modal.in .modal-content{-webkit-transform:translate(0, 0);transform:translate(0, 0);opacity:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s ease-out;transition:opacity .3s ease-out;background:rgba(0,0,0,0.5);z-index:1040}.modal-backdrop.fade{opacity:0}.modal-backdrop.in{opacity:0.8}.modal-body{padding:20px 24px 24px 24px}.modal-container{position:fixed;top:0;right:nil;bottom:nil;left:0;height:100%;width:100%}.modal-content{-webkit-transition:all .3s ease-out;transition:all .3s ease-out;background-color:white;max-height:90vh;overflow-y:auto;position:relative;width:600px}.modal-content.edit-gcp-environment{overflow-y:auto;width:800px}.modal-header{font-size:20px;font-weight:400;padding:24px 24px 0 24px;text-transform:none;width:90%}.modal-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.modal-actions .mdl-button{margin:8px}.modal-close{position:absolute;top:24px;right:24px;bottom:nil;left:nil;color:#ccc;font-size:18px}.my-credits{background:#F8F9FB;border-radius:2px;padding:1.5rem}.my-credits__overview{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.my-credits__overview__message{margin-left:1.5rem}.my-credits__overview__message h4{font-size:20px;font-weight:700;line-height:1.5;text-transform:none}.my-credits__overview__message p{font-size:13px;font-weight:400;line-height:1.5;margin:0;text-transform:uppercase}.my-credits__overview__message a{font-size:11px;line-height:1.5;text-decoration:underline}.my-credits__details{margin-top:1.5rem}.my-credits__details .flex-table__row{border-bottom:none;height:30px}.my-credits__details .flex-table__row .td{font-size:13px}.my-credits__details .flex-table__row:hover{background:none}.my-credits__details .flex-table__row--header{background:none;border-bottom:1px solid #dfe0e2}.my-credits__details .flex-table__row--header .td{color:rgba(0,0,0,0.87)}.my-credits__share{display:block;font-size:14px;margin-bottom:3rem;text-align:right}.td.my-credits__action{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:80px;text-align:right}.td.my-credits__credits{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.td.my-credits__expiring{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100px}.td.my-credits__purchase-date{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:160px}.td.my-credits__price{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100px}.td.my-credits__next-expiring{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:190px}.td.my-credits__purchased span{border-radius:2px;background:#4285F4;color:#FFFFFF;font-size:14px;padding:2px 5px;text-transform:uppercase}.pagination{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:13px;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.pagination__per-page{margin-right:24px;position:relative}.pagination__per-page form{display:inline-block}.pagination__per-page select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:rgba(0,0,0,0.54);cursor:pointer;font-family:'Roboto';font-size:13px;margin-left:8px;padding-right:16px;position:relative;z-index:1}.pagination__per-page:after{font-family:'Material Icons';content:'arrow_drop_down';position:absolute;top:0px;right:0px}.pagination__page{margin-right:24px}.pagination__navigation{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.pagination__navigation .previous_page,.pagination__navigation .next_page{color:rgba(0,0,0,0.54);display:block;line-height:1}.pagination__navigation .previous_page.disabled,.pagination__navigation .next_page.disabled{color:#ccc}.pagination__navigation .previous_page{margin-right:24px}.partners p{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;margin:1.5rem 0}.partners__logos{-ms-flex-wrap:wrap;flex-wrap:wrap;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.partners__logos img{margin:1.5rem}.partners__quote{background:#4285F4;border-radius:2px;color:#FFFFFF;padding:1.5rem;text-align:center}.partners__quote cite{font-size:14px;display:block;margin-top:1.5rem;font-style:normal}.progress-bar{background:#f3f4f6;border-radius:100px;height:20px;overflow:hidden;width:100%}.progress-bar__fill{background:#8ED525;height:100%}.public-profile__hero{padding-left:1.5rem;padding-right:1.5rem;background:#4285F4;color:#FFFFFF;margin-bottom:3rem;padding-bottom:1.5rem;padding-top:1.5rem;position:relative;text-align:center}@media (min-width: 1281px){.public-profile__hero{padding-left:3rem;padding-right:3rem}}.public-profile__hero h1{font-size:50px;max-width:800px;margin-left:auto;margin-right:auto;text-transform:none}.public-profile__hero p,.public-profile__hero span{text-transform:uppercase}.public-profile__hero .avatar{height:120px;width:120px;border-width:4px;margin:0 auto 0.75rem auto}.public-profile__badges{-ms-flex-wrap:wrap;flex-wrap:wrap;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.public-profile__badge{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:250px;min-width:130px;margin:0 1.5rem 1.5rem 1.5rem;text-align:center}.public-profile__badge__link{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;display:-webkit-box;display:-ms-flexbox;display:flex;color:rgba(0,0,0,0.54);position:relative}.public-profile__badge__link span{font-size:14px}.public-profile__badge__link:hover{color:rgba(0,0,0,0.87);text-decoration:none}.public-profile__badge__objectives{position:absolute;top:0;right:nil;bottom:nil;left:0}.quest__hero{padding-left:1.5rem;padding-right:1.5rem;background:#4285F4;color:#FFFFFF;margin-bottom:80px;padding-bottom:80px;padding-top:80px;position:relative;text-align:center}@media (min-width: 1281px){.quest__hero{padding-left:3rem;padding-right:3rem}}.quest__hero h1{font-size:50px;max-width:800px;margin-left:auto;margin-right:auto;text-transform:none}.quest__hero p,.quest__hero span{text-transform:uppercase}.quest__hero__subject{background:rgba(255,255,255,0.7);border-radius:2px;color:#4285F4;font-size:13px;padding:2px 5px}.quest__badge{position:absolute;top:nil;right:nil;bottom:-70px;left:50%;height:130px;width:auto;margin-left:-60px}.quest__description{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:18px}.quest__enroll{text-align:center}.quest__lab{padding-left:50px;position:relative}.quest__lab label{color:rgba(0,0,0,0.54);display:block;font-size:13px;margin:0}.quest__lab h3{font-size:20px;font-weight:700}.quest__lab h3 a{text-decoration:underline}.quest__lab p{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif}.quest__lab+.quest__lab:before{display:block;content:'OR';font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-weight:700;font-size:15px;margin:1.5rem 0}.quest__lab__details{font-size:13px;font-weight:700;text-transform:capitalize}.quest__lab__details span:not(:last-child){margin-right:0.75rem}.quest__step{position:relative}.quest__step:after{position:absolute;top:2px;right:nil;bottom:nil;left:0;height:30px;width:30px;background:#FFFFFF;border:2px solid #d3d4d5;border-radius:50%;content:'';display:block}.quest__step:before{position:absolute;top:2px;right:nil;bottom:nil;left:16px;height:100%;width:0px;border-right:2px solid #d3d4d5;content:'';display:block}.quest__step:last-child:before{display:none}.quest__step:not(:last-child){padding-bottom:1.5rem}.quest__step--optional:after{border-style:dotted}.quest__step--optional:before{border-right-style:dotted}.rateit{display:-moz-inline-box;display:inline-block;position:relative;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.rateit .rateit-range{position:relative;display:-moz-inline-box;display:inline-block;background:url(//dgfy547layodx.cloudfront.net/assets/star-9216e68160f7d8ab8746e48076184eb03e949b75862c045fca4eb0d9f04af9da.png);background-size:16px 64px;height:16px}.rateit .rateit-hover,.rateit .rateit-selected{position:absolute;left:0px}.rateit .rateit-hover-rtl,.rateit .rateit-selected-rtl{left:auto;right:0px}.rateit .rateit-hover{background:url(//dgfy547layodx.cloudfront.net/assets/star-9216e68160f7d8ab8746e48076184eb03e949b75862c045fca4eb0d9f04af9da.png) left -32px;background-size:16px 64px}.rateit .rateit-hover-rtl{background-position:right -32px}.rateit .rateit-selected{background:url(//dgfy547layodx.cloudfront.net/assets/star-9216e68160f7d8ab8746e48076184eb03e949b75862c045fca4eb0d9f04af9da.png) left -16px;background-size:16px 64px}.rateit .rateit-selected-rtl{background-position:right -16px}.rateit .rateit-preset{background:url(//dgfy547layodx.cloudfront.net/assets/star-9216e68160f7d8ab8746e48076184eb03e949b75862c045fca4eb0d9f04af9da.png) left -48px;background-size:16px 64px}.rateit .rateit-preset-rtl{background:url(//dgfy547layodx.cloudfront.net/assets/star-9216e68160f7d8ab8746e48076184eb03e949b75862c045fca4eb0d9f04af9da.png) left -48px;background-size:16px 64px}.rateit .rateit-reset{background:url(//dgfy547layodx.cloudfront.net/assets/delete-32cd2462f0572cc6d63fba76837141950a47108f0015cee8f116f69002d1019f.gif) 0 0;width:16px;height:16px;display:-moz-inline-box;display:inline-block;float:left}.rateit .rateit-reset:hover{background-position:0 -16px}.review{display:-webkit-box;display:-ms-flexbox;display:flex}.review:not(:last-child){border-bottom:2px solid #F8F9FB;margin-bottom:0.75rem;padding-bottom:0.75rem}.review__content{margin-left:0.75rem}.review__content *{display:block;line-height:1.5}.ruled-list li{list-style:none;margin:0;padding:0.75rem}.ruled-list li:not(:last-child){border-bottom:2px solid #f5f6f9}.ruled-list li:hover{background:#F8F9FB}.side-menu{-webkit-transition:width 0.175s cubic-bezier(0.4, 0, 0.6, 1);transition:width 0.175s cubic-bezier(0.4, 0, 0.6, 1);background:rgba(32,33,36,0.04);overflow-x:hidden;overflow-y:auto;width:72px}.side-menu.is-open{-webkit-transition:width 0.2s cubic-bezier(0, 0, 0.2, 1);transition:width 0.2s cubic-bezier(0, 0, 0.2, 1);width:256px}@media (max-width: 600px){.side-menu{height:calc(100vh - 56px);position:fixed;width:0px;z-index:29}}.side-menu__inner{height:100%;min-height:800px}.side-menu__item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:3px solid transparent;color:rgba(0,0,0,0.54);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:72px;text-decoration:none !important;width:256px}.side-menu__item:hover{background:rgba(32,33,36,0.06)}.side-menu__item.active{background:#fff;border-left-color:#4285F4;color:#4285F4}@media (max-width: 600px){.side-menu__item{height:56px}}.side-menu__item__icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:-3px;width:72px}.side-menu__item__tooltip{background:rgba(0,0,0,0.6);border-radius:100px;color:#fff;font-size:12px;margin-left:50px;opacity:0;padding:2px 8px;position:absolute;-webkit-transform:scale(0.1);transform:scale(0.1);-webkit-transform-origin:center left;transform-origin:center left;-webkit-transition:-webkit-transform .1s ease-in-out;transition:-webkit-transform .1s ease-in-out;transition:transform .1s ease-in-out;transition:transform .1s ease-in-out, -webkit-transform .1s ease-in-out;z-index:30}.side-menu__item__icon:hover+.side-menu__item__tooltip,.side-menu__item__tooltip:hover{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.side-menu.is-open .side-menu__item__tooltip{display:none}.side-menu__item__label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;opacity:0;padding-left:24px;-webkit-transform:scale(0.8);transform:scale(0.8);-webkit-transform-origin:left center;transform-origin:left center;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.side-menu.is-open .side-menu__item__label{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.side-menu__small-links{display:block;bottom:24px;font-size:13px;left:24px;position:absolute;width:256px}.side-menu__small-links a{color:#4285F4;display:block;font-weight:400;opacity:0;padding:4px 0px;-webkit-transform:scale(0.5);transform:scale(0.5);-webkit-transform-origin:left center;transform-origin:left center;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.side-menu.is-open .side-menu__small-links a{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.side-menu hr{border-top:1px solid #eee;margin:0px}.side-menu__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,0.54);opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:opacity .1s ease-in;transition:opacity .1s ease-in;z-index:28}@media (max-width: 600px){.side-menu.is-open+.side-menu__overlay{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.sidenav__link{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;background:#FFFFFF;border:2px solid #ebeef4;cursor:pointer;display:block;padding:0.75rem;width:100%}.sidenav__link:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.sidenav__link:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.sidenav__link:not(:last-child){border-bottom:none}.sidenav__link:hover{background:#F8F9FB;color:#1266f1}.sidenav__link{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none;text-transform:uppercase}.sidenav{width:100%}.sidenav__group:not(:last-child){margin-bottom:1.5rem}.sidenav__link.is-active{background:#4285F4;color:#FFFFFF}.stepper__step:before{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.stepper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;background:inherit;counter-reset:stepper;font-size:14px;padding:16px;position:relative;border-bottom:1px solid #eee}.stepper:after{position:absolute;top:50%;right:nil;bottom:nil;left:16px;height:1px;width:calc(100% - 32px);background:#bdbdbd;display:block;content:'';z-index:1}.stepper__step{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:all, .5s, ease-in-out;transition:all, .5s, ease-in-out;background:inherit;color:#9E9E9E;counter-increment:stepper;font-weight:400;padding:8px;position:relative;z-index:2}.stepper__step:hover{text-decoration:none}.stepper__step:before{height:24px;width:24px;-webkit-transition:all, .5s, ease-in-out;transition:all, .5s, ease-in-out;background:#9E9E9E;border-radius:50%;color:#FFFFFF;content:counter(stepper);font-weight:300;margin-right:8px}.stepper__step:first-child{padding-left:0}.stepper__step:last-child{padding-right:0}.stepper__step.is-active{color:rgba(0,0,0,0.87);font-weight:700}.stepper__step.is-active:before{background:#4285F4;font-weight:400}.stepper__step.is-complete{color:rgba(0,0,0,0.87)}.stepper__step.is-complete:before{background:#4285F4;content:'done';font-family:'Material Icons'}.stepper__step.is-complete.is-editable{cursor:pointer}.stepper__step.is-complete.is-editable:before{content:'edit'}.stepper__step.is-active.is-complete.is-editable{cursor:default}.dashboard-lab-row{height:50px}.dashboard-lab-row .td{font-size:14px}.dashboard-lab-row:first-of-type{border-top:2px solid #f3f4f6}.dashboard-lab-row--active{background:rgba(219,68,55,0.1)}.dashboard-lab-row--active .progress-bar{background:#FFFFFF;height:12px}.dashboard-lab-row--active .progress-bar__fill{background:#DB4437;float:right}.dashboard-lab-row--not-taken .td{color:rgba(0,0,0,0.54)}.dashboard-lab-row--not-taken:hover .td{color:rgba(0,0,0,0.87)}.td.dashboard-lab-row__status{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:13px}.td.dashboard-lab-row__assessment{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:85px}.td.dashboard-lab-row__title{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:40%}.td.dashboard-lab-row__rating{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:80px}.td.dashboard-lab-row__locale{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:20px}.dashboard-quests-table__quest{border-bottom:2px solid #f3f4f6}.dashboard-quests-table__quest:first-of-type{border-top:2px solid #f3f4f6}.dashboard-quests-table__arrow{-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.dashboard-quests-table__arrow.is-shown{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.dashboard-quest-row{border-bottom:none;cursor:pointer}.td.dashboard-quest-row__badge{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:55px}.td.dashboard-quest-row__title{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:39.5%}.td.dashboard-quest-row__complete{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:130px}.td.dashboard-quest-row__arrow{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:15px}.dashboard-quest-steps{padding-left:105px}.dashboard-quest-step{position:relative;border-bottom:1px solid #f3f4f6}.dashboard-quest-step .dashboard-lab-row{border:none;height:40px}.dashboard-quest-step .dashboard-lab-row__status{display:none}.dashboard-quest-step:after{position:absolute;top:50%;right:nil;bottom:nil;left:-20px;height:15px;width:15px;background:#FFFFFF;border:1px solid rgba(0,0,0,0.54);border-radius:50%;content:'';margin-top:-8px;display:block}.dashboard-quest-step:before{position:absolute;top:0;right:nil;bottom:nil;left:-12px;height:calc(100% + 1px);width:0px;border-right:1px solid rgba(0,0,0,0.54);content:'';display:block}.dashboard-quest-step:first-child{border-top:1px solid #f3f4f6}.dashboard-quest-step:first-child:before{height:calc(50% + 1px);top:50%}.dashboard-quest-step:last-child:before{height:50%}.dashboard-quest-step--optional:after{border-style:dotted}.dashboard-quest-step--optional:before{border-right-style:dotted}.dashboard-quest-step--complete:after{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background:#8ED525;border-color:#8ED525;color:#FFFFFF;content:'\f00c';font-family:'FontAwesome';font-size:14px}.dashboard-quest-step--complete.dashboard-quest-step--optional:after{border-color:#FFFFFF}.dashboard-recommendation{background:rgba(244,180,0,0.75);border-radius:2px;padding:1.5rem}.dashboard-recommendation--large-padding{padding:3rem}.dashboard-header{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;display:-webkit-box;display:-ms-flexbox;display:flex}.dashboard-alert h4{margin-bottom:0.75rem}.dashboard-alert .button{background:#4285F4;color:"$white";color:#FFFFFF;height:auto;margin-top:0.75rem;padding:6px}.dashboard-alert .button:hover,.dashboard-alert .button:focus{background:#2a75f3;color:"$white"}.dashboard__group{margin-bottom:24px}.dashboard__group h2{font-size:20px;font-weight:400;margin-bottom:16px}.dashboard__completed{background:#FFFFFF;border-radius:2px;padding:20px 24px}.table-of-contents{list-style:none}.table-of-contents li{display:-webkit-box;display:-ms-flexbox;display:flex}.table-of-contents__title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:90%}.table-of-contents__page{margin-left:auto}.table-of-contents--markdown ul{list-style:none;margin:0}.table-of-contents--markdown ul li{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none;margin:0}.table-of-contents--markdown ul li a{color:rgba(0,0,0,0.87);display:block;margin-bottom:0.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.table-of-contents--markdown ul li ul{padding-left:1.5rem}.table-of-contents--markdown ul li ul li{font-weight:400}.table-of-contents--markdown ul li ul li a{color:rgba(0,0,0,0.65)}table{border-collapse:collapse;border-spacing:0;border:none;font-size:12px;margin-bottom:1.5rem;width:100%}th,td{padding:10px 6px;text-align:left}tbody tr{border-bottom:1px solid #f5f6f9}tbody tr:hover{background:#F8F9FB}th{background:#f2f3f7;color:rgba(0,0,0,0.54);font-weight:400;text-align:left}.flex-table{width:100%}.flex-table__row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:2px solid #f3f4f6;display:-webkit-box;display:-ms-flexbox;display:flex;height:70px}.flex-table__row .td{box-sizing:content-box;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:14px;line-height:1.3;padding:0 8px}.flex-table__row:hover{background:#F8F9FB}.flex-table__row.is-new{-webkit-animation:newRow 2s;animation:newRow 2s}@-webkit-keyframes newRow{from{background:rgba(244,180,0,0.2)}to{background:rgba(244,180,0,0)}}@keyframes newRow{from{background:rgba(244,180,0,0.2)}to{background:rgba(244,180,0,0)}}.flex-table__row--header{background:#F8F9FB;height:auto}.flex-table__row--header .td{color:#c6c7c9;font-size:11px;font-weight:700;padding:6px 8px 4px 8px;text-transform:uppercase}.flex-table__actions{text-align:right}.flex-table__actions i{font-size:18px}.flex-table__actions>*:not(:last-child){margin-right:16px}.flex-table__actions .mdl-spinner{width:18px;height:18px}.mdl-table .flex-table__row{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;border-bottom:1px solid #eee;height:auto;padding:19px 24px 18px 24px}.mdl-table .flex-table__row:focus{background:#eee}@media (max-width: 600px){.mdl-table .flex-table__row{padding-left:16px;padding-right:16px}}.mdl-table .flex-table__row .td{color:rgba(0,0,0,0.87);font-size:14px;padding:0 56px 0 0}.mdl-table .flex-table__row .td:first-child{padding:0 24px 0 0}.mdl-table .flex-table__row .td:last-child{padding:0}.mdl-table .flex-table__row.is-selected{background:#E8F0FE}.mdl-table .flex-table__row.is-selected i.material-icons{color:#4285F4}.mdl-table .flex-table__row:hover{background:#fafafa}.mdl-table .flex-table__row--header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:none;height:56px;padding:0 24px}@media (max-width: 600px){.mdl-table .flex-table__row--header{padding-left:16px;padding-right:16px}}.mdl-table .flex-table__row--header .td{color:rgba(0,0,0,0.54);font-size:12px;font-weight:600;text-transform:none}.mdl-table .flex-table__row--header:hover{background:none}.mdl-table--index .flex-table__row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-weight:400;text-decoration:none !important}.mdl-table--index .flex-table__row span.fake-link{color:#4285F4;font-weight:500}.mdl-table--index .flex-table__row span.version{color:rgba(0,0,0,0.54);font-weight:400;margin-left:8px;text-decoration:none}.mdl-table--index .flex-table__row:hover span.fake-link,.mdl-table--index .flex-table__row:focus span.fake-link{text-decoration:underline}@media (max-width: 960px){.mdl-table--index .flex-table__row span.fake-link{color:rgba(0,0,0,0.87);font-weight:400}.mdl-table--index .flex-table__row .td:not(:first-child){display:none}}@media (max-width: 960px){.mdl-table--index .flex-table__row--header{display:none}}.tab{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.tab{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none;text-transform:uppercase}.tabs{border-bottom:2px solid #e9eaec;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0px 0.75rem;list-style:none}.tabs--lab-sidebar{border-bottom-color:#e0e3e5;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.tab{-webkit-transition:color .1s ease-in-out, text-decoration .1s ease-in-out;transition:color .1s ease-in-out, text-decoration .1s ease-in-out;border-radius:2px 2px 0 0;color:#4285F4;cursor:pointer;height:40px;padding:0 1.5rem;position:relative;top:2px}.tab:hover{color:#3b78dc;text-decoration:underline}li.active .tab,.tab.is-active,.tab.active{background:#FFFFFF;border:2px solid #e9eaec;border-bottom-color:transparent;color:rgba(0,0,0,0.87);cursor:default;padding:0 calc(1.5rem - 2px);text-decoration:none}.tab--lab-sidebar{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 2px}.tab--lab-sidebar.is-active{padding:0px;background:#e7eaed;border-color:#e0e3e5;border-bottom-color:transparent}.tab-contents{padding:1.5rem 0}.tab-contents .tab-content{display:none}.tab-contents .tab-content.is-active,.tab-contents .tab-content.active{display:block}.tab-contents--lab-sidebar{background:#e7eaed;padding:0.75rem;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.mdl-card__tabs{border-bottom:1px solid #eee;display:-webkit-box;display:-ms-flexbox;display:flex}.mdl-card__tabs a{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:none;border:none;color:rgba(0,0,0,0.87);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;font-weight:400;height:56px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;top:0;text-decoration:none !important;text-transform:none;min-width:160px}.mdl-card__tabs a.active{font-weight:700}.mdl-card__tabs a.active:before{background:#4285F4;bottom:0;content:'';display:block;height:3px;left:0;position:absolute;width:100%}@media (max-width: 600px){.mdl-card__tabs{display:none}}.landing .tiles-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.landing .tile{color:rgba(0,0,0,0.87);display:block;min-height:500px;padding-bottom:40%;position:relative;width:100%;z-index:30}.landing .tile img{display:block;margin-left:auto;margin-right:auto}.landing .tile:hover{-webkit-transform:scale(1.01);transform:scale(1.01);box-shadow:0 5px 10px rgba(0,0,0,0.24),0 5px 20px rgba(0,0,0,0.12);color:currentColor;text-decoration:none;z-index:100}@media (max-width: 1280px){.landing .tile{padding-bottom:0;min-height:0}}.landing .tile--half{width:50%}.landing .tile--half img{width:100%}@media (max-width: 1280px){.landing .tile--half{width:100%}}.landing .tile--dark{color:#FFFFFF}.landing .tile--dark:hover{color:#FFFFFF}.landing .tile--join-google{background-color:#F4B400}.landing .tile--join-google img{margin-top:32px;max-width:527px}.landing .tile--finish-quest{background-color:#3F51B5;background:#3F51B5 url(//dgfy547layodx.cloudfront.net/assets/spiral-e2216568579b5a7ad46e66f0ca78c24d077a96bf74abb7b0b02e8e46bdac1434.svg) no-repeat center -160px;color:#FFFFFF}.landing .tile--finish-quest:hover{color:#FFFFFF}.landing .tile--finish-quest img{margin-top:56px;max-width:456px}@media (max-width: 600px){.landing .tile--finish-quest img{margin-top:32px}}.landing .tile--partner{background:white}.landing img.tile--partner__graphic{position:absolute;top:nil;right:nil;bottom:0;left:50%;-webkit-transition:all .5s ease-in-out;transition:all .5s ease-in-out;width:570px}@media (max-width: 1400px){.landing img.tile--partner__graphic{left:51%;width:500px}}@media (max-width: 1300px){.landing img.tile--partner__graphic{left:53%;width:430px}}@media (max-width: 1200px){.landing img.tile--partner__graphic{display:none}}.landing .tile__content{position:absolute;top:0;right:0;bottom:0;left:0;padding:32px}.landing .tile__content h2{font-family:"Roboto Slab", sans-serif;font-size:32px;font-weight:300;margin-bottom:16px}.landing .tile__content p{max-width:640px}.landing .tile__content p:not(:last-child){margin-bottom:16px}@media (max-width: 1280px){.landing .tile__content{padding-bottom:80px;position:static}}.landing .tile__link{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;top:nil;right:32px;bottom:32px;left:nil}.landing .tile__link i.fa{font-size:24px;margin:0 0 0 8px}.toast{-webkit-transition:-webkit-transform 0.175s cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 0.175s cubic-bezier(0.4, 0, 1, 1);transition:transform 0.175s cubic-bezier(0.4, 0, 1, 1);transition:transform 0.175s cubic-bezier(0.4, 0, 1, 1),-webkit-transform 0.175s cubic-bezier(0.4, 0, 1, 1);-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;background:rgba(0,0,0,0.8);border-radius:8px 8px 0 0;bottom:0px;min-width:25vw;padding:16px 48px;position:fixed;-webkit-transform:translateY(100%);transform:translateY(100%);z-index:10}.toast.is-visible{-webkit-transition:-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.2s cubic-bezier(0, 0, 0.2, 1);transition:transform 0.2s cubic-bezier(0, 0, 0.2, 1),-webkit-transform 0.2s cubic-bezier(0, 0, 0.2, 1);-webkit-transform:translateY(0px);transform:translateY(0px)}.toast__message{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:16px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.toast__message a{margin-left:8px}.toast__loader{bottom:0px;left:0px;opacity:0;position:absolute;width:100%}.toast__loader .progressbar{background-color:#FFEB3B !important}.toast__loader .bufferbar{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5), rgba(0,0,0,0.5)),-webkit-linear-gradient(left, #FFEB3B, #FFEB3B);background-image:linear-gradient(to right, rgba(0,0,0,0.5), rgba(0,0,0,0.5)),linear-gradient(to right, #FFEB3B, #FFEB3B)}.toast__loader .auxbar{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.3), rgba(0,0,0,0.3)),-webkit-linear-gradient(left, #FFEB3B, #FFEB3B) !important;background-image:linear-gradient(to right, rgba(0,0,0,0.3), rgba(0,0,0,0.3)),linear-gradient(to right, #FFEB3B, #FFEB3B) !important}.toast__loader.is-visible{opacity:1}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.3;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:11px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px;padding:0.75rem}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{height:0;position:relative;overflow:hidden;-webkit-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caption{color:rgba(0,0,0,0.54);display:inline-block;font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:10px;line-height:1;text-decoration:none}hr{border:none;border-top:2px solid #ebeef4;box-shadow:none}mark{background-color:#fffdee;border-radius:2px;color:inherit;padding:2px 0px}p,li{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:16px;font-weight:400;line-height:1.5}.small-label,.label--small{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;font-size:14px;line-height:1;text-decoration:none}strong{font-weight:700}.mdl-typography--small-title{color:rgba(0,0,0,0.87);font-size:15px;font-weight:400}.text--blue{color:#4285F4}.text--center{text-align:center}.text--capitalize{text-transform:capitalize}.text--code{font-family:"Roboto Mono", "Source Code Pro"}.text--copy{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif}.text--error{color:#DB4437}.text--free{color:#8ED525;font-weight:700;text-transform:uppercase}.text--gray{color:rgba(0,0,0,0.54)}.text--light{color:rgba(0,0,0,0.25)}.text--right{text-align:right}.text--sign{font-family:"Oswald", "Roboto Condensed", "Monterrat", "sans-serif"}.text--small{font-size:14px !important}.text--success{color:#8ED525}.text--yellow{color:#FFEB3B}u{text-decoration:none}.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:'liga';font-feature-settings:'liga'}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.about-us__map{position:relative;padding-bottom:75%;height:0;width:100%}.about-us__map iframe{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;width:100%}.about-us__team{-ms-flex-wrap:wrap;flex-wrap:wrap;display:-webkit-box;display:-ms-flexbox;display:flex}.about-us__team-member{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-ms-flexbox;display:flex;padding-bottom:3rem}.about-us__team-member img{display:block;margin-right:1.5rem}body.admin .modal{top:0%;left:50%;right:auto;bottom:auto}.l-full-container .not-visible{display:none}.classrooms-index .flex-table__row .td:nth-child(3){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:23%}.classrooms-index .flex-table__row .td:nth-child(4){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:32px}.classrooms-index .flex-table__row .td:nth-child(5){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.classroom-student .l-main-wrapper{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-ms-flexbox;display:flex;padding-right:408px}@media (max-width: 600px){.classroom-student .l-main-wrapper{padding:0px !important}}.classroom-student .header__tabs{display:none}@media (max-width: 600px){.classroom-student .header__tabs{display:-webkit-box;display:-ms-flexbox;display:flex}}.classroom-student__content{-webkit-box-flex:1;-ms-flex:1;flex:1}.classroom-student__details{position:fixed;right:24px;width:360px}@media (max-width: 960px){.classroom-student__details{display:none}}.classroom-student__notes{background:#fff;border-right:1px solid #ddd;height:100%;overflow-y:auto;width:320px}.classroom-student__notes a{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #eee;border-left:3px solid transparent;color:rgba(0,0,0,0.87);display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:400;padding:16px 24px;text-decoration:none !important}.classroom-student__notes a:hover{background:#eee}.classroom-student__notes a.active{border-left-color:#4285F4;color:#4285F4;font-weight:700}@media (max-width: 600px){.classroom-student__notes{display:none}}.classroom-student__note{background:#fff;-webkit-box-flex:1;-ms-flex:1;flex:1;height:100%;overflow-y:auto}.classroom-student__note .lab-content__markdown{margin:80px auto}.classroom-student .classroom__detail{color:rgba(0,0,0,0.87)}.classroom-student .classroom__detail h3{font-size:15px;font-weight:700;margin-bottom:8px}.classroom-student .classroom__detail p{font-size:14px}.classroom-student .classroom__detail:not(:last-child){margin-bottom:32px}.classroom-student__lab-table__title.td{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.classroom-student__lab-table__title.td i{margin-right:24px}.classroom-student__lab-table__title.td span{background:#4285F4;border-radius:100px;color:#FFFFFF;display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;margin-left:auto}.classroom-student__lab-table--deactivated .classroom-student__lab-table__title.td{color:rgba(0,0,0,0.54)}.classroom-student__lab-table--deactivated .classroom-student__lab-table__title.td i{color:rgba(0,0,0,0.4)}.classroom-student__lab-table--deactivated .classroom-student__lab-table__title.td span{background:rgba(0,0,0,0.4)}@media (max-width: 600px){.classroom-student{background:#fff !important}.classroom-student .mdl-card{box-shadow:none;margin:0}}.classroom-student-note .l-main-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%}.classrooms-overview .mdl-card__title{display:none}.classrooms-overview .mdl-card__supporting-text{padding:16px}.classroom .flash{background:rgba(0,0,0,0.75);bottom:24px;left:24px;position:fixed;width:480px}.classroom .l-main-wrapper{height:100%}.classroom__content{box-shadow:0 0 6px rgba(0,0,0,0.25);display:-webkit-box;display:-ms-flexbox;display:flex;height:100%}.classroom__sidebar{background:white;border-right:1px solid #eee;height:100%;overflow-y:auto}.classroom__sidebar--instructions{position:relative}.classroom__sidebar--instructions span.ellipsis{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:calc(100% - 48px)}.classroom__sidebar--instructions .open-in-new{right:16px;margin-top:-48px;position:absolute}.classroom__main{height:100%;overflow-y:auto}.classroom__main--lab{padding:72px}.classroom__main--student{padding:56px 32px}.classroom__main--student img{margin:32px auto}.classroom__index-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #eee;color:rgba(0,0,0,0.87);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;font-weight:400;height:88px;padding:24px;position:relative;text-decoration:none !important}.classroom__index-item span{-webkit-box-flex:1;-ms-flex:1;flex:1}.classroom__index-item.active{background:#fafafa;font-weight:500}.classroom__index-item.active:before{background:#4285F4;content:'';display:block;height:100%;left:0px;position:absolute;top:0px;width:4px}.classroom__index-item--slim{height:64px}.classroom__labs__lab__dot{background:#f0f0f0;border-radius:50%;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;height:24px;margin-right:24px;width:24px}.classroom__labs__lab__details{color:rgba(0,0,0,0.54);display:block;font-size:13px}.classroom__lab__title{font-size:40px;font-weight:300;max-width:640px;margin-bottom:48px}.classroom__lab__actions{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:48px}.classroom__lab__actions .is-active{background-color:#DB4437 !important}.classroom__lab__actions .is-paused{background-color:#0F9D58 !important}.classroom__lab__actions .pre-warm-lab-button{background-color:#FF5722 !important}.classroom__lab__hotlabs{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;display:-webkit-box;display:-ms-flexbox;display:flex}.classroom__lab__hotlabs a{border-bottom:1px dotted #FF5722;color:#FF5722;font-weight:400;margin-right:6px;text-decoration:none}.classroom__lab__description{font-size:17px;line-height:1.8;margin-bottom:48px;margin-top:48px;max-width:640px}.classroom__lab__table{overflow:visible}.classroom__lab__table .mdl-card__title{height:72px}.classroom__lab__table .mdl-card__supporting-text{overflow:visible}.classroom__lab__table h2{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%}.classroom__lab__table h2 span.light{color:rgba(0,0,0,0.54);font-size:14px;font-weight:400}.classroom__lab__student-row.flex-table__row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:56px;padding:0 24px}.classroom__lab__student-row.flex-table__row .td{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.classroom__lab__student-row.flex-table__row .avatar{margin-right:24px}.classroom__lab__student-actions{display:none}.classroom__lab__student-row__select{-webkit-box-flex:0 !important;-ms-flex:0 0 auto !important;flex:0 0 auto !important;width:32px}.classroom__resource-lab__actions{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.classroom__resource-lab__actions form{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:32px;width:auto}.classroom__resource-lab__actions form input[type='number']{margin-right:8px;width:80px}.classroom__students__table .flex-table__row{-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-weight:400;height:56px;padding:0 24px;position:relative;text-decoration:none !important}.classroom__students__table .flex-table__row.active{background:#fafafa;font-weight:500}.classroom__students__table .flex-table__row.active:before{background:#4285F4;content:'';display:block;height:100%;left:0px;position:absolute;top:0px;width:4px}.classroom__students__table .flex-table__row .td{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.classroom__students__table .flex-table__row .td:nth-child(1){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:24px;width:32px}.classroom__students__table .flex-table__row .td:nth-child(5){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:32px}.classroom__students__table .flex-table__row--filter .td,.classroom__students__table .flex-table__row--unenrolled-student .td{color:rgba(0,0,0,0.54)}.classroom__students__table form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:16px;width:100%}.classroom__students__table form p{margin-bottom:4px}.classroom__students__table form textarea{background:#f6f6f6;border:none;border-radius:2px;height:64px;margin-bottom:8px;margin-right:8px;width:100%}.classroom__students__table form textarea:focus{background:#f2f2f2}.classroom__students__table form input[type='submit']{margin-left:auto}.classroom__students__delete{color:#DB4437;margin-top:-45px;position:absolute;right:24px}.classroom__student__title{font-weight:300;text-align:center}.classrooms-instructions-student .l-main-wrapper{height:100%}.courses-index .flex-table__row .td:nth-child(2){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:160px}.courses-index .flex-table__row .td:nth-child(3){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:160px}.courses-index .flex-table__row .td:nth-child(4){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:32px}body.focuses-show .l-main-wrapper,body.focuses-show_materials .l-main-wrapper,body.labs-preview .l-main-wrapper,body.labs-show .l-main-wrapper,body.lab_locales-preview .l-main-wrapper{height:100%}body.focuses-show .l-alert-wrapper,body.focuses-show_materials .l-alert-wrapper,body.labs-preview .l-alert-wrapper,body.labs-show .l-alert-wrapper,body.lab_locales-preview .l-alert-wrapper{left:320px;padding:0px 16px;top:64px;width:calc(100% - 320px)}body.focuses-show .flash,body.focuses-show_materials .flash,body.labs-preview .flash,body.labs-show .flash,body.lab_locales-preview .flash{left:320px;position:absolute;top:calc(64px + 56px);width:calc(100% - 0.75rem * 2 - 320px);z-index:30}body.focuses-show .lab-buttons,body.focuses-show_materials .lab-buttons,body.labs-preview .lab-buttons,body.labs-show .lab-buttons,body.lab_locales-preview .lab-buttons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;bottom:24px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;right:24px;z-index:700}body.focuses-show .lab-buttons a:not(:last-child),body.focuses-show_materials .lab-buttons a:not(:last-child),body.labs-preview .lab-buttons a:not(:last-child),body.labs-show .lab-buttons a:not(:last-child),body.lab_locales-preview .lab-buttons a:not(:last-child){margin-bottom:24px}body.focuses-show .lab-buttons .mini-fab-size,body.focuses-show_materials .lab-buttons .mini-fab-size,body.labs-preview .lab-buttons .mini-fab-size,body.labs-show .lab-buttons .mini-fab-size,body.lab_locales-preview .lab-buttons .mini-fab-size{width:40px;height:40px}@media print{body.focuses-show,body.focuses-show_materials,body.labs-preview,body.labs-show,body.lab_locales-preview{display:none !important}}.ql_devise-confirmations,.ql_devise-passwords,.ql_devise-registrations-new,.ql_devise-sessions,.ql_devise-unblocks{background:#4285F4}.ql_devise-confirmations .flash,.ql_devise-passwords .flash,.ql_devise-registrations-new .flash,.ql_devise-sessions .flash,.ql_devise-unblocks .flash{position:fixed;margin-left:0.75rem;margin-right:0.75rem;width:calc(100% - (2 * 0.75rem))}.ql_devise-confirmations .flash.alert-success,.ql_devise-passwords .flash.alert-success,.ql_devise-registrations-new .flash.alert-success,.ql_devise-sessions .flash.alert-success,.ql_devise-unblocks .flash.alert-success{background:#F4B400}.ql_devise-registrations-new .l-wrapper--join,.ql_devise-passwords-activate_signup .l-wrapper--join{max-width:650px}.ql_devise-registrations-new .l-wrapper--join{padding-top:2%}.lab-edit .l-main-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.lab-edit .lab__locales{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:32px;margin-bottom:24px}.lab-edit .lab__locales a{background:rgba(0,0,0,0.08)}.lab-edit .lab__locales a:hover{background:rgba(0,0,0,0.12)}.lab-edit .lab__locales .add-locale .material-icons{font-size:18px}.lab-edit .lab__locales a:not(.add-locale){font-size:13px;line-height:32px;margin-right:24px}.lab-edit .lab__locales a:not(.add-locale).active{background:#4285F4;color:#FFFFFF}.lab-edit .lab__locales .lab__date{margin-left:auto}.lab-edit .lab__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1}.lab-edit .lab__details{margin-right:32px;min-width:360px;width:25%}.lab-edit .lab__details .mdl-card__edit-title{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.lab-edit .lab__details__resources,.lab-edit .lab__details__custom-properties{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;background:#fff;border-bottom:1px solid #eee;border-top:1px solid #eee;display:-webkit-box;display:-ms-flexbox;display:flex;left:-24px;margin-bottom:16px;padding:8px 24px;position:relative;width:calc(100% + 48px)}.lab-edit .lab__details__resources__form,.lab-edit .lab__details__custom-properties__form{-webkit-box-flex:1;-ms-flex:1;flex:1}.lab-edit .lab__details__resources__remove{margin-left:24px;width:32px}.lab-edit .lab__details__dm{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#f6f6f6;border-bottom:1px solid #eee;border-top:1px solid #eee;display:-webkit-box;display:-ms-flexbox;display:flex;height:50px;left:-24px;margin-bottom:16px;padding:8px 24px;position:relative;width:calc(100% + 48px)}.lab-edit .lab__details__zones div.checkboxes{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;max-height:416px}.lab-edit .lab__details__zones span.checkbox{display:block;font-size:13px;margin-bottom:8px}.lab-edit .lab__details__zones span.checkbox input{margin-right:8px}.lab-edit .lab__details__special__concurrent .lab_concurrent_allowed{background:none;border:none;font-size:14px;margin-right:8px;width:auto}.lab-edit .lab__details__special__concurrent .lab_concurrent_allowed label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.lab-edit .lab__details__special__concurrent .lab_concurrent_allowed input[type='checkbox']{margin-right:8px}.lab-edit .lab__details__special__concurrent #concurrent_info{color:rgba(0,0,0,0.54)}.lab-edit .lab__details__special__concurrent .mdl-tooltip{background:rgba(0,0,0,0.75);border-radius:8px;font-size:12px;font-weight:400;line-height:1.3}.lab-edit .lab__instructions{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-transition:height .05s linear;transition:height .05s linear}.lab-edit .lab__instructions .mdl-card{border-radius:8px;box-shadow:0px 1px 6px rgba(32,33,36,0.28);height:100%;width:100%}.lab-edit .lab__instructions.is-fixed{position:fixed;top:calc(56px + 24px);height:calc(100% - 56px - 48px)}.lab-edit .lab__instructions__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#f6f6f6;border-bottom:1px solid #ddd;color:#4285F4;display:-webkit-box;display:-ms-flexbox;display:flex;height:64px;padding:12px 32px}.lab-edit .lab__instructions__header .ellipsis{width:600px}.lab-edit .lab__instructions__header.has-error{background:#DB4437;color:#FFFFFF}.lab-edit .lab__instructions__header.has-error a{color:#FFFFFF}.lab-edit .lab__instructions__actions{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:auto}.lab-edit .lab__instructions__link{color:#4285F4;display:inline-block;font-size:14px;font-weight:300;text-decoration:underline;width:100%}.lab-edit .lab__instructions__content{height:100%;overflow-y:auto;position:relative}.lab-edit .lab__instructions__content .markdown-lab-instructions{margin:80px auto;max-width:640px;opacity:1;position:relative;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out;z-index:2}.lab-edit .lab__instructions__content .markdown-lab-instructions.is-hidden{opacity:0}.lab-edit .lab__instructions__content .markdown-lab-instructions.is-faded{opacity:.1}.lab-edit .lab__instructions__form{padding:26px 24px;max-width:640px}.lab-edit .lab__instructions__form h2{color:rgba(0,0,0,0.87);margin-bottom:24px}.lab-edit .lab__instructions__form .md-input{-webkit-box-flex:1;-ms-flex:1;flex:1}.lab-edit .lab__instructions__form .mdl-button{margin-left:8px}.lab-edit .lab__instructions__loader{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:0px;opacity:1;position:absolute;top:0px;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out;width:100%;z-index:3}.lab-edit .lab__instructions__loader .mdl-spinner{height:160px;width:160px}.lab-edit .lab__instructions__loader .mdl-spinner .mdl-spinner__circle{border-width:16px}.lab-edit .lab__instructions__loader.is-hidden{opacity:0;z-index:1}.lab-edit .lab__instructions__error{color:#DB4437 !important;text-align:center}.lab-edit .lab__instructions__error p{color:#DB4437 !important}.lab-edit .lab__test-environment{margin-bottom:24px;margin-top:24px;min-height:0px}.lab-edit .lab__test-environment .mdl-card__supporting-text{padding:16px 24px;width:100%}.labs.labs-index .flex-table__row .td:nth-child(2){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:120px}.labs.labs-index .flex-table__row .td:nth-child(3){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:120px}.labs.labs-new{background:#fafafa}.labs.labs-new footer{display:none}.labs.labs-new .form-row:not(:last-child){margin-bottom:16px}.labs.labs-new .form-row>*{-webkit-box-flex:1;-ms-flex:1;flex:1}.labs.labs-new .form-row>*:not(:last-child){margin-right:24px}@media (max-width: 600px){.labs.labs-new .form-row{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-bottom:0px !important}.labs.labs-new .form-row>*{margin-right:0px !important}.labs.labs-new .form-row .md-input{margin-bottom:16px}.labs.labs-new .form-row:last-child .md-input:last-child{margin-bottom:0px !important}}.labs.labs-new .form-row--condensed{margin-bottom:8px !important}.labs.labs-new .form-row--condensed:last-child{margin-bottom:0px !important}@media (max-width: 600px){.labs.labs-new .form-row--condensed{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-bottom:0px !important}.labs.labs-new .form-row--condensed>*{margin-right:0px !important}.labs.labs-new .form-row--condensed .md-input{margin-bottom:16px}.labs.labs-new .form-row--condensed:last-child .md-input:last-child{margin-bottom:0px !important}}.labs.labs-new .alert-error{display:none}.labs.labs-new #error_explanation{background:#DB4437;border-radius:2px;color:#FFFFFF;margin:0 auto 24px auto;max-width:704px;padding:32px}.labs.labs-new #error_explanation h2{font-size:16px}.labs.labs-new #error_explanation p{font-size:14px;margin:0}.labs.labs-new .labs__resources,.labs.labs-new .labs__instructions{font-size:16px;margin-bottom:32px}.labs.labs-new .labs__resources>label,.labs.labs-new .labs__instructions>label{font-size:12px !important;margin-bottom:8px}.labs.labs-new .labs__resources--horizontal,.labs.labs-new .labs__instructions--horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.labs.labs-new .labs__resources--horizontal>label,.labs.labs-new .labs__instructions--horizontal>label{font-size:16px !important;margin-bottom:0;width:162px}.labs.labs-new .labs__resources--horizontal>div,.labs.labs-new .labs__instructions--horizontal>div{-webkit-box-flex:1;-ms-flex:1;flex:1}.labs.labs-new .labs__resources__new{background:#f2f2f2;border-radius:2px;margin-bottom:8px;padding:8px}.labs.labs-new .labs__form{background:#FFFFFF;margin:0 auto 64px auto;max-width:704px;padding:32px}@media (max-width: 600px){.labs.labs-new .labs__form{left:0px;margin:0px;padding:16px;position:absolute;top:64px;width:100%}}.permissions-select__container{margin-bottom:32px;position:relative}.permissions-select__button{cursor:pointer}.permissions-select__button label{color:#aaa;font-size:12px;font-weight:400;text-transform:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.permissions-select__button:focus label{color:#4285F4}.permissions-select__button:focus .permissions-display:before{border-color:#4285F4}.permissions-display{border:1px solid #ddd;font-size:13px;margin:0px;min-height:35px;padding:3px 1px;position:relative}.permissions-display:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:2px solid transparent;content:'';display:block;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.permissions-display span{background:rgba(66,133,244,0.1);border-radius:100px;display:inline-block;margin:2px;padding:2px 6px}.permissions-select__menu{position:absolute;top:50%;right:nil;bottom:nil;left:0;background:#fff;border-radius:2px;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12);list-style:none;margin-top:-266px;opacity:0;padding:4px 0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:0 66%;transform-origin:0 66%;-webkit-transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);will-change:transform}.permissions-select__menu.is-visible{opacity:1;-webkit-transform:scale(1);transform:scale(1);z-index:999}.permissions-select__menu.is-visible+.permissions-select__overlay{display:block}.permissions-select__menu__item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:13px;margin:0 !important;padding:3px 10px;position:relative}.permissions-select__menu__item span{margin-right:10px}.permissions-select__menu__item i.fa{margin-left:auto}.permissions-select__menu__item i.material-icons{color:#4285F4;font-size:14px;margin-right:5px;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);will-change:transform}.permissions-select__menu__item.is-selected{font-weight:700}.permissions-select__menu__item.is-selected>i.material-icons{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.permissions-select__menu__item:hover{background:#eee}.permissions-select__menu__item:hover .permissions-select__submenu{opacity:1;-webkit-transform:scale(1);transform:scale(1);z-index:999}.permissions-select__submenu{position:absolute;top:0;right:nil;bottom:nil;left:calc(100% - 5px);background:#fff;border-radius:2px;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.2),0 1px 5px 0 rgba(0,0,0,0.12);list-style:none;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);padding:4px 0;will-change:transform}.permissions-select__overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;z-index:998}.permissions-select__container--horizontal .permissions-select__button{display:-webkit-box;display:-ms-flexbox;display:flex}.permissions-select__container--horizontal .permissions-select__button label{font-size:16px;width:162px}.permissions-select__container--horizontal .permissions-select__button p{-webkit-box-flex:1;-ms-flex:1;flex:1}.permissions-select__container--horizontal .permissions-select__menu{left:162px}.labs.labs-instruction .labs-instruction__edit{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.labs.labs-instruction .labs-instruction__edit__url{margin-right:auto;width:calc(100% - 56px)}.labs.labs-show .classroom-templates-table .td:nth-child(2){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:10%}.labs.labs-show .classroom-templates-table .td:nth-child(3){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.lab-locales-table .td:nth-child(1){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:125px}.lab-locales-table .td:nth-child(4){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:200px}.lab-locales-table .td:nth-child(5){-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:140px}.lab-instruction{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.lab-instruction .mdl-spinner{height:24px;position:absolute;width:24px}.lab-instruction-status-icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:8px;width:24px}.lab-instruction__error{color:#DB4437;font-size:14px;margin-left:32px}.md-body{background:#fff}.md-body--embed .header-container{display:none}.md-body--admin td{font-size:13px}.md-body--admin td p{font-size:12px}.md-body--admin .label.label-success,.md-body--admin .label.label-warning{background:#4285F4;border-radius:30px;color:white;font-size:12px;padding:1px 6px}.md-body--suadmin .header-container{background:#444}@media (max-width: 600px){.md-body--index{background:#FFFFFF}}@media (max-width: 600px){.md-body--index .l-main-wrapper{padding:0}}.md-body--index .header__tabs{display:none}@media (max-width: 600px){.md-body--index .header__tabs{display:-webkit-box;display:-ms-flexbox;display:flex}}@media (max-width: 600px){.md-body--index .card--table{box-shadow:none !important}}.md-body--index .mdl-card__title{display:-webkit-box;display:-ms-flexbox;display:flex}@media (max-width: 600px){.md-body--index .mdl-card__title,.md-body--index .mdl-card__menu{display:none}}@media (max-width: 600px){.md-body--index .mdl-card__supporting-text{padding:0 0 80px 0}}.md-body--index .mdl-button--fab{bottom:72px;display:none;position:fixed;right:16px;z-index:30}@media (max-width: 600px){.md-body--index .mdl-button--fab{display:-webkit-box;display:-ms-flexbox;display:flex}}.public_profiles-show .flash{background:#47E7AE}.terms-of-service p,.terms-of-service li,.terms-of-service ol{font-family:"Roboto", "Open Sans", "Helvetica", "Arial", sans-serif;margin:1.5rem 0}.terms-of-service ol ol{padding-left:1.5rem}.terms-of-service li{list-style:decimal}.terms-of-service li li{list-style:upper-alpha}.terms-of-service li li li{list-style:lower-roman} diff --git a/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/application-965286b1d75b8ed026adfefe5748f3ad70657330c97a79281c8bc1b35d341af9.js b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/application-965286b1d75b8ed026adfefe5748f3ad70657330c97a79281c8bc1b35d341af9.js new file mode 100755 index 0000000..0e4a4d0 --- /dev/null +++ b/gpc/labs/Leveraging Unstructured Data _ Qwiklabs + roitraining_files/application-965286b1d75b8ed026adfefe5748f3ad70657330c97a79281c8bc1b35d341af9.js @@ -0,0 +1,1184 @@ +/* + Apache-2.0 + @copyright 2015 Google, Inc. + @link https://github.com/google/material-design-lite +*/ +var $jscomp={scope:{},global:this},Symbol;$jscomp.initSymbol=function(){$jscomp.global.Symbol||(Symbol=$jscomp.Symbol);$jscomp.initSymbol=function(){}};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(b){return"jscomp_symbol_"+b+$jscomp.symbolCounter_++};$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();Symbol.iterator||(Symbol.iterator=Symbol("iterator"));$jscomp.initSymbolIterator=function(){}}; +$jscomp.makeIterator=function(b){$jscomp.initSymbolIterator();if(b[Symbol.iterator])return b[Symbol.iterator]();if(!(b instanceof Array||"string"==typeof b||b instanceof String))throw new TypeError(b+" is not iterable");var a=0;return{next:function(){return a==b.length?{done:!0}:{done:!1,value:b[a++]}}}};$jscomp.arrayFromIterator=function(b){for(var a,d=[];!(a=b.next()).done;)d.push(a.value);return d};$jscomp.arrayFromIterable=function(b){return b instanceof Array?b:$jscomp.arrayFromIterator($jscomp.makeIterator(b))}; +$jscomp.arrayFromArguments=function(b){for(var a=[],d=0;d"!==C[1]||lb.test(h)?0:l:l.firstChild)&& +h.childNodes.length;f--;)k.nodeName(m=h.childNodes[f],"tbody")&&!m.childNodes.length&&h.removeChild(m);k.merge(K,l.childNodes);for(l.textContent="";l.firstChild;)l.removeChild(l.firstChild);l=n.lastChild}else K.push(b.createTextNode(h));l&&n.removeChild(l);z.appendChecked||k.grep(u(K,"input"),B);for(q=0;h=K[q++];)if(d&&-1")).appendTo(b.documentElement),b=(ga[0].contentWindow||ga[0].contentDocument).document,b.write(),b.close(),c=Y(a,b),ga.detach()),O[a]=c);return c}function pa(a,b){return{get:function(){if(a())delete this.get;else return(this.get=b).apply(this,arguments)}}}function la(a){if(a in Mb)return a;for(var b=a.charAt(0).toUpperCase()+a.slice(1),c=Nb.length;c--;)if(a= +Nb[c]+b,a in Mb)return a}function sa(a,b){for(var c,d,e,f=[],h=0,l=a.length;hb;b+=2)"margin"===c&&(f+=k.css(a,c+Ea[b],!0,e)),d?("content"===c&&(f-=k.css(a,"padding"+Ea[b],!0,e)),"margin"!==c&&(f-=k.css(a,"border"+Ea[b]+"Width",!0,e))):(f+=k.css(a,"padding"+Ea[b],!0,e),"padding"!==c&&(f+=k.css(a,"border"+Ea[b]+"Width",!0,e)));return f}function R(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=ta(a),h=z.boxSizing&&"border-box"=== +k.css(a,"boxSizing",!1,f);if(0>=e||null==e){e=ma(a,b,f);if(0>e||null==e)e=a.style[b];if(ua.test(e))return e;d=h&&(z.boxSizingReliable()||e===a.style[b]);e=parseFloat(e)||0}return e+ja(a,b,c||(h?"border":"content"),d,f)+"px"}function P(a,b,c,d,e){return new P.prototype.init(a,b,c,d,e)}function ba(){b.setTimeout(function(){Ra=void 0});return Ra=k.now()}function Q(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=Ea[e],d["margin"+c]=d["padding"+c]=a;b&&(d.opacity=d.width=a);return d}function va(a, +b,c){for(var d,e=(V.tweeners[b]||[]).concat(V.tweeners["*"]),f=0,h=e.length;fc&&f)return b;h.resolveWith(a,[g]);return!1},g=h.promise({elem:a,props:k.extend({},b),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ra||ba(),duration:c.duration,tweens:[],createTween:function(b,c){var d=k.Tween(a,g.opts,b,c,g.opts.specialEasing[b]||g.opts.easing);g.tweens.push(d);return d}, +stop:function(b){var c=0,e=b?g.tweens.length:0;if(d)return this;for(d=!0;ca?this[a+this.length]:this[a]:za.call(this)},pushStack:function(a){a=k.merge(this.constructor(),a);a.prevObject=this;a.context=this.context;return a},each:function(a){return k.each(this,a)},map:function(a){return this.pushStack(k.map(this,function(b, +c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(za.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&ac?Math.max(0,d+c):c:0;cr.cacheLength&&delete a[b.shift()];return a[c+" "]=d}var b=[];return a}function d(a){a[z]=!0;return a}function e(a){var b=O.createElement("div"); +try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function f(a,b){for(var c=a.split("|"),d=c.length;d--;)r.attrHandle[c[d]]=b}function h(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||-2147483648)-(~a.sourceIndex||-2147483648);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function l(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function g(a){return function(b){var c=b.nodeName.toLowerCase(); +return("input"===c||"button"===c)&&b.type===a}}function m(a){return d(function(b){b=+b;return d(function(c,d){for(var e,f=a([],c.length,b),h=f.length;h--;)c[e=f[h]]&&(c[e]=!(d[e]=c[e]))})})}function k(a){return a&&"undefined"!==typeof a.getElementsByTagName&&a}function C(){}function p(a){for(var b=0,c=a.length,d="";b+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,ca=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,jb=/:((?:\\.|[\w-]|[^\x00-\xa0])+)(?:\((('((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)")|((?:\\.|[^\\()[\]]|\[[\x20\t\r\n\f]*((?:\\.|[\w-]|[^\x00-\xa0])+)(?:[\x20\t\r\n\f]*([*^$|!~]?=)[\x20\t\r\n\f]*(?:'((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)"|((?:\\.|[\w-]|[^\x00-\xa0])+))|)[\x20\t\r\n\f]*\])*)|.*)\)|)/, +na=/^(?:\\.|[\w-]|[^\x00-\xa0])+$/,Oa={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:/^((?:\\.|[\w-]|[^\x00-\xa0])+|[*])/,ATTR:/^\[[\x20\t\r\n\f]*((?:\\.|[\w-]|[^\x00-\xa0])+)(?:[\x20\t\r\n\f]*([*^$|!~]?=)[\x20\t\r\n\f]*(?:'((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)"|((?:\\.|[\w-]|[^\x00-\xa0])+))|)[\x20\t\r\n\f]*\]/,PSEUDO:/^:((?:\\.|[\w-]|[^\x00-\xa0])+)(?:\((('((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)")|((?:\\.|[^\\()[\]]|\[[\x20\t\r\n\f]*((?:\\.|[\w-]|[^\x00-\xa0])+)(?:[\x20\t\r\n\f]*([*^$|!~]?=)[\x20\t\r\n\f]*(?:'((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)"|((?:\\.|[\w-]|[^\x00-\xa0])+))|)[\x20\t\r\n\f]*\])*)|.*)\)|)/, +CHILD:/^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,bool:/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,needsContext:/^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i},xa=/^(?:input|select|textarea|button)$/i,ya=/^h\d$/i,ma= +/^[^{]+\{\s*\[native \w/,ea=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,qa=/[+~]/,fa=/'|\\/g,X=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,Z=function(a,b,c){a="0x"+b-65536;return a!==a||c?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,a&1023|56320)},tb=function(){v()};try{P.apply(ua=pa.call(U.childNodes),U.childNodes),ua[U.childNodes.length].nodeType}catch(uc){P={apply:ua.length?function(a,b){R.apply(a,pa.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length= +c-1}}}M=b.support={};y=b.isXML=function(a){return(a=a&&(a.ownerDocument||a).documentElement)?"HTML"!==a.nodeName:!1};v=b.setDocument=function(a){var b;a=a?a.ownerDocument||a:U;if(a===O||9!==a.nodeType||!a.documentElement)return O;O=a;J=O.documentElement;N=!y(O);(b=O.defaultView)&&b.top!==b&&(b.addEventListener?b.addEventListener("unload",tb,!1):b.attachEvent&&b.attachEvent("onunload",tb));M.attributes=e(function(a){a.className="i";return!a.getAttribute("className")});M.getElementsByTagName=e(function(a){a.appendChild(O.createComment("")); +return!a.getElementsByTagName("*").length});M.getElementsByClassName=ma.test(O.getElementsByClassName);M.getById=e(function(a){J.appendChild(a).id=z;return!O.getElementsByName||!O.getElementsByName(z).length});M.getById?(r.find.ID=function(a,b){if("undefined"!==typeof b.getElementById&&N){var c=b.getElementById(a);return c?[c]:[]}},r.filter.ID=function(a){var b=a.replace(X,Z);return function(a){return a.getAttribute("id")===b}}):(delete r.find.ID,r.filter.ID=function(a){var b=a.replace(X,Z);return function(a){return(a= +"undefined"!==typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}});r.find.TAG=M.getElementsByTagName?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a);if(M.qsa)return b.querySelectorAll(a)}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f};r.find.CLASS=M.getElementsByClassName&&function(a,b){if("undefined"!==typeof b.getElementsByClassName&&N)return b.getElementsByClassName(a)}; +ba=[];G=[];if(M.qsa=ma.test(O.querySelectorAll))e(function(a){J.appendChild(a).innerHTML="";a.querySelectorAll("[msallowcapture^='']").length&&G.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")");a.querySelectorAll("[selected]").length||G.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)");a.querySelectorAll("[id~="+ +z+"-]").length||G.push("~=");a.querySelectorAll(":checked").length||G.push(":checked");a.querySelectorAll("a#"+z+"+*").length||G.push(".#.+[+~]")}),e(function(a){var b=O.createElement("input");b.setAttribute("type","hidden");a.appendChild(b).setAttribute("name","D");a.querySelectorAll("[name=d]").length&&G.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?=");a.querySelectorAll(":enabled").length||G.push(":enabled",":disabled");a.querySelectorAll("*,:x");G.push(",.*:")});(M.matchesSelector=ma.test(Q=J.matches|| +J.webkitMatchesSelector||J.mozMatchesSelector||J.oMatchesSelector||J.msMatchesSelector))&&e(function(a){M.disconnectedMatch=Q.call(a,"div");Q.call(a,"[s!='']:x");ba.push("!=",":((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)")}); +G=G.length&&new RegExp(G.join("|"));ba=ba.length&&new RegExp(ba.join("|"));V=(b=ma.test(J.compareDocumentPosition))||ma.test(J.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&1===d.nodeType&&(c.contains?c.contains(d):a.compareDocumentPosition&&a.compareDocumentPosition(d)&16))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1};I=b?function(a,b){if(a===b)return A=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition; +if(c)return c;c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;return c&1||!M.sortDetached&&b.compareDocumentPosition(a)===c?a===O||a.ownerDocument===U&&V(U,a)?-1:b===O||b.ownerDocument===U&&V(U,b)?1:S?ka(S,a)-ka(S,b):0:c&4?-1:1}:function(a,b){if(a===b)return A=!0,0;var c,d=0;c=a.parentNode;var e=b.parentNode,f=[a],l=[b];if(!c||!e)return a===O?-1:b===O?1:c?-1:e?1:S?ka(S,a)-ka(S,b):0;if(c===e)return h(a,b);for(c=a;c=c.parentNode;)f.unshift(c);for(c=b;c=c.parentNode;)l.unshift(c); +for(;f[d]===l[d];)d++;return d?h(f[d],l[d]):f[d]===U?-1:l[d]===U?1:0};return O};b.matches=function(a,c){return b(a,null,null,c)};b.matchesSelector=function(a,c){(a.ownerDocument||a)!==O&&v(a);c=c.replace(ca,"='$1']");if(!(!M.matchesSelector||!N||W[c+" "]||ba&&ba.test(c)||G&&G.test(c)))try{var d=Q.call(a,c);if(d||M.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){a[1]= +a[1].replace(X,Z);a[3]=(a[3]||a[4]||a[5]||"").replace(X,Z);"~="===a[2]&&(a[3]=" "+a[3]+" ");return a.slice(0,4)},CHILD:function(a){a[1]=a[1].toLowerCase();"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]);return a},PSEUDO:function(a){var b,c=!a[6]&&a[2];if(Oa.CHILD.test(a[0]))return null;a[3]?a[2]=a[4]||a[5]||"":c&&jb.test(c)&&(b=H(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0, +b),a[2]=c.slice(0,b));return a.slice(0,3)}},filter:{TAG:function(a){var b=a.replace(X,Z).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=ib[a+" "];return b||(b=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+a+"([\\x20\\t\\r\\n\\f]|$)"))&&ib(a,function(a){return b.test("string"===typeof a.className&&a.className||"undefined"!==typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){e= +b.attr(e,a);if(null==e)return"!="===c;if(!c)return!0;e+="";return"="===c?e===d:"!="===c?e!==d:"^="===c?d&&0===e.indexOf(d):"*="===c?d&&-1a.nodeType)return!1;return!0},parent:function(a){return!r.pseudos.empty(a)},header:function(a){return ya.test(a.nodeName)},input:function(a){return xa.test(a.nodeName)},button:function(a){var b= +a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:m(function(){return[0]}),last:m(function(a,b){return[b-1]}),eq:m(function(a,b,c){return[0>c?c+b:c]}),even:m(function(a,b){for(var c=0;cc?c+b:c;0<=--b;)a.push(b); +return a}),gt:m(function(a,b,c){for(c=0>c?c+b:c;++c";a.firstChild.setAttribute("value",""); +return""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue});e(function(a){return null==a.getAttribute("disabled")})||f("checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",function(a,b,c){var d;if(!c)return!0===a[b]?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null});return b}(b);k.find=oa;k.expr=oa.selectors;k.expr[":"]=k.expr.pseudos; +k.uniqueSort=k.unique=oa.uniqueSort;k.text=oa.getText;k.isXMLDoc=oa.isXML;k.contains=oa.contains;var Aa=function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&k(a).is(c))break;d.push(a)}return d},fb=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},ob=k.expr.match.needsContext,pb=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,yb=/^.[^:#\[\.,]*$/;k.filter=function(a,b,c){var d=b[0];c&&(a=":not("+a+")");return 1===b.length&&1===d.nodeType? +k.find.matchesSelector(d,a)?[d]:[]:k.find.matches(a,k.grep(b,function(a){return 1===a.nodeType}))};k.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!==typeof a)return this.pushStack(k(a).filter(function(){for(b=0;b)[^>]*|#([\w-]*))$/;(k.fn.init=function(a,b,c){var d;if(!a)return this;c=c||Ua;if("string"===typeof a){d="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&3<=a.length?[null,a,null]:Va.exec(a);if(!d||!d[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(d[1]){if(b=b instanceof k?b[0]:b,k.merge(this,k.parseHTML(d[1],b&&b.nodeType?b.ownerDocument||b:I,!0)),pb.test(d[1])&& +k.isPlainObject(b))for(d in b)if(k.isFunction(this[d]))this[d](b[d]);else this.attr(d,b[d])}else{if((b=I.getElementById(d[2]))&&b.parentNode){if(b.id!==d[2])return Ua.find(a);this.length=1;this[0]=b}this.context=I;this.selector=a}return this}if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(k.isFunction(a))return"undefined"!==typeof c.ready?c.ready(a):a(k);void 0!==a.selector&&(this.selector=a.selector,this.context=a.context);return k.makeArray(a,this)}).prototype=k.fn;Ua=k(I);var qb= +/^(?:parents|prev(?:Until|All))/,Bb={children:!0,contents:!0,next:!0,prev:!0};k.fn.extend({has:function(a){var b,c=k(a,this),d=c.length;return this.filter(function(){for(b=0;bc.nodeType&&(h?-1
a";z.leadingWhitespace=3===a.firstChild.nodeType;z.tbody=!a.getElementsByTagName("tbody").length;z.htmlSerialize=!!a.getElementsByTagName("link").length;z.html5Clone= +"<:nav>"!==I.createElement("nav").cloneNode(!0).outerHTML;c.type="checkbox";c.checked=!0;b.appendChild(c);z.appendChecked=c.checked;a.innerHTML="";z.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue;b.appendChild(a);c=I.createElement("input");c.setAttribute("type","radio");c.setAttribute("checked","checked");c.setAttribute("name","t");a.appendChild(c);z.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked;z.noCloneEvent=!!a.addEventListener;a[k.expando]=1; +z.attributes=!a.getAttribute(k.expando)})();var X={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:z.htmlSerialize?[0,"",""]:[1,"X
","
"]};X.optgroup=X.option;X.tbody=X.tfoot=X.colgroup=X.caption= +X.thead;X.th=X.td;var db=/<|&#?\w+;/,lb=/n.indexOf(":")&&"on"+n,a=a[k.expando]?a:new k.Event(n,"object"===typeof a&&a),a.isTrigger=e?2:3,a.namespace=m.join("."),a.rnamespace=a.namespace?new RegExp("(^|\\.)"+ +m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=d),c=null==c?[a]:k.makeArray(c,[a]),m=k.event.special[n]||{},e||!m.trigger||!1!==m.trigger.apply(d,c))){if(!e&&!m.noBubble&&!k.isWindow(d)){g=m.delegateType||n;Ya.test(g+n)||(l=l.parentNode);for(;l;l=l.parentNode)p.push(l),f=l;f===(d.ownerDocument||I)&&p.push(f.defaultView||f.parentWindow||b)}for(C=0;(l=p[C++])&&!a.isPropagationStopped();)a.type=1a.button))for(;g!=this;g=g.parentNode||this)if(1===g.nodeType&&(!0!==g.disabled||"click"!==a.type)){d=[];for(c=0;c]/i, +Da=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,sb=/\s*$/g,M=r(I).appendChild(I.createElement("div"));k.extend({htmlPrefilter:function(a){return a.replace(Da,"<$1>")},clone:function(a,b,c){var d,e,f,h,l,g=k.contains(a.ownerDocument,a);z.html5Clone||k.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(M.innerHTML=a.outerHTML,M.removeChild(f= +M.firstChild));if(!(z.noCloneEvent&&z.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||k.isXMLDoc(a)))for(d=u(f),l=u(a),h=0;null!=(e=l[h]);++h)if(d[h]){var m=d[h],C=void 0,p=void 0,n=void 0;if(1===m.nodeType){C=m.nodeName.toLowerCase();if(!z.noCloneEvent&&m[k.expando]){n=k._data(m);for(p in n.events)k.removeEvent(m,p,n.handle);m.removeAttribute(k.expando)}if("script"===C&&m.text!==e.text)G(m).text=e.text,L(m);else if("object"===C)m.parentNode&&(m.outerHTML=e.outerHTML),z.html5Clone&&e.innerHTML&& +!k.trim(m.innerHTML)&&(m.innerHTML=e.innerHTML);else if("input"===C&&cb.test(e.type))m.defaultChecked=m.checked=e.checked,m.value!==e.value&&(m.value=e.value);else if("option"===C)m.defaultSelected=m.selected=e.defaultSelected;else if("input"===C||"textarea"===C)m.defaultValue=e.defaultValue}}if(b)if(c)for(l=l||u(a),d=d||u(f),h=0;null!=(e=l[h]);h++)N(e,d[h]);else N(a,f);d=u(f,"script");0k.inArray(this,a)&&(k.cleanData(u(this)),c&&c.replaceChild(b, +this))},a)}});k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){k.fn[a]=function(a){for(var c=0,d=[],e=k(a),f=e.length-1;c<=f;c++)a=c===f?this:this.clone(!0),k(e[c])[b](a),Ta.apply(d,a.get());return this.pushStack(d)}});var ga,O={HTML:"block",BODY:"block"},ib=/^margin/,ua=new RegExp("^("+gb+")(?!px)[a-z%]+$","i"),jb=function(a,b,c,d){var e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];c=c.apply(a,d||[]);for(e in b)a.style[e]= +f[e];return c},Oa=I.documentElement;(function(){function a(){var k,C=I.documentElement;C.appendChild(g);m.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%";c=e=l=!1;d=h=!0;b.getComputedStyle&&(k=b.getComputedStyle(m),c="1%"!==(k||{}).top,l="2px"===(k||{}).marginLeft,e="4px"===(k||{width:"4px"}).width,m.style.marginRight="50%",d="4px"===(k||{marginRight:"4px"}).marginRight,k=m.appendChild(I.createElement("div")), +k.style.cssText=m.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",m.style.width="1px",h=!parseFloat((b.getComputedStyle(k)||{}).marginRight),m.removeChild(k));m.style.display="none";if(f=0===m.getClientRects().length)if(m.style.display="",m.innerHTML="
t
",m.childNodes[0].style.borderCollapse="separate",k=m.getElementsByTagName("td"), +k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight)k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight;C.removeChild(g)}var c,d,e,f,h,l,g=I.createElement("div"),m=I.createElement("div");m.style&&(m.style.cssText="float:left;opacity:.5",z.opacity="0.5"===m.style.opacity,z.cssFloat=!!m.style.cssFloat,m.style.backgroundClip="content-box",m.cloneNode(!0).style.backgroundClip="",z.clearCloneStyle="content-box"===m.style.backgroundClip,g=I.createElement("div"), +g.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",m.innerHTML="",g.appendChild(m),z.boxSizing=""===m.style.boxSizing||""===m.style.MozBoxSizing||""===m.style.WebkitBoxSizing,k.extend(z,{reliableHiddenOffsets:function(){null==c&&a();return f},boxSizingReliable:function(){null==c&&a();return e},pixelMarginRight:function(){null==c&&a();return d},pixelPosition:function(){null==c&&a();return c},reliableMarginRight:function(){null==c&&a();return h}, +reliableMarginLeft:function(){null==c&&a();return l}}))})();var ta,ma,tb=/^(top|right|bottom|left)$/;b.getComputedStyle?(ta=function(a){var c=a.ownerDocument.defaultView;c&&c.opener||(c=b);return c.getComputedStyle(a)},ma=function(a,b,c){var d,e,f=a.style;e=(c=c||ta(a))?c.getPropertyValue(b)||c[b]:void 0;""!==e&&void 0!==e||k.contains(a.ownerDocument,a)||(e=k.style(a,b));c&&!z.pixelMarginRight()&&ua.test(e)&&ib.test(b)&&(a=f.width,b=f.minWidth,d=f.maxWidth,f.minWidth=f.maxWidth=f.width=e,e=c.width, +f.width=a,f.minWidth=b,f.maxWidth=d);return void 0===e?e:e+""}):Oa.currentStyle&&(ta=function(a){return a.currentStyle},ma=function(a,b,c){var d,e,f,h=a.style;f=(c=c||ta(a))?c[b]:void 0;null==f&&h&&h[b]&&(f=h[b]);if(ua.test(f)&&!tb.test(b)){c=h.left;if(e=(d=a.runtimeStyle)&&d.left)d.left=a.currentStyle.left;h.left="fontSize"===b?"1em":f;f=h.pixelLeft+"px";h.left=c;e&&(d.left=e)}return void 0===f?f:f+""||"auto"});var Fb=/alpha\([^)]*\)/i,$b=/opacity\s*=\s*([^)]*)/i,ac=/^(none|table(?!-c[ea]).+)/,Yb= +new RegExp("^("+gb+")(.*)$","i"),bc={position:"absolute",visibility:"hidden",display:"block"},Ob={letterSpacing:"0",fontWeight:"400"},Nb=["Webkit","O","Moz","ms"],Mb=I.createElement("div").style;k.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=ma(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":z.cssFloat? +"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,h,l=k.camelCase(b),g=a.style;b=k.cssProps[l]||(k.cssProps[l]=la(l)||l);h=k.cssHooks[b]||k.cssHooks[l];if(void 0!==c){if(f=typeof c,"string"===f&&(e=bb.exec(c))&&e[1]&&(c=q(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(k.cssNumber[l]?"":"px")),z.clearCloneStyle||""!==c||0!==b.indexOf("background")||(g[b]="inherit"),!(h&&"set"in h)||void 0!==(c=h.set(a,c,d))))try{g[b]=c}catch(m){}}else return h&& +"get"in h&&void 0!==(e=h.get(a,!1,d))?e:g[b]}},css:function(a,b,c,d){var e,f;f=k.camelCase(b);b=k.cssProps[f]||(k.cssProps[f]=la(f)||f);(f=k.cssHooks[b]||k.cssHooks[f])&&"get"in f&&(e=f.get(a,!0,c));void 0===e&&(e=ma(a,b,d));"normal"===e&&b in Ob&&(e=Ob[b]);return""===c||c?(a=parseFloat(e),!0===c||isFinite(a)?a||0:e):e}});k.each(["height","width"],function(a,b){k.cssHooks[b]={get:function(a,c,d){if(c)return ac.test(k.css(a,"display"))&&0===a.offsetWidth?jb(a,bc,function(){return R(a,b,d)}):R(a,b, +d)},set:function(a,c,d){var e=d&&ta(a);return aa(a,c,d?ja(a,b,d,z.boxSizing&&"border-box"===k.css(a,"boxSizing",!1,e),e):0)}}});z.opacity||(k.cssHooks.opacity={get:function(a,b){return $b.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=k.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if((1<=b||""===b)&&""===k.trim(f.replace(Fb,""))&&c.removeAttribute&&(c.removeAttribute("filter"), +""===b||d&&!d.filter))return;c.filter=Fb.test(f)?f.replace(Fb,e):f+" "+e}});k.cssHooks.marginRight=pa(z.reliableMarginRight,function(a,b){if(b)return jb(a,{display:"inline-block"},ma,[a,"marginRight"])});k.cssHooks.marginLeft=pa(z.reliableMarginLeft,function(a,b){if(b)return(parseFloat(ma(a,"marginLeft"))||(k.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-jb(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px"});k.each({margin:"",padding:"",border:"Width"},function(a, +b){k.cssHooks[a+b]={expand:function(c){var d=0,e={};for(c="string"===typeof c?c.split(" "):[c];4>d;d++)e[a+Ea[d]+b]=c[d]||c[d-2]||c[0];return e}};ib.test(a)||(k.cssHooks[a+b].set=aa)});k.fn.extend({css:function(a,b){return Ba(this,function(a,b,c){var d,e={},f=0;if(k.isArray(b)){c=ta(a);for(d=b.length;f
a";c.getElementsByTagName("a");b.setAttribute("type", +"checkbox");c.appendChild(b);a=c.getElementsByTagName("a")[0];a.style.cssText="top:1px";z.getSetAttribute="t"!==c.className;z.style=/top/.test(a.getAttribute("style"));z.hrefNormalized="/a"===a.getAttribute("href");z.checkOn=!!b.value;z.optSelected=e.selected;z.enctype=!!I.createElement("form").enctype;d.disabled=!0;z.optDisabled=!e.disabled;b=I.createElement("input");b.setAttribute("value","");z.input=""===b.getAttribute("value");b.value="t";b.setAttribute("type","radio");z.radioValue="t"===b.value})(); +var ec=/\r/g,fc=/[\x20\t\r\n\f]+/g;k.fn.extend({val:function(a){var b,c,d,e=this[0];if(arguments.length)return d=k.isFunction(a),this.each(function(c){1===this.nodeType&&(c=d?a.call(this,c,k(this).val()):a,null==c?c="":"number"===typeof c?c+="":k.isArray(c)&&(c=k.map(c,function(a){return null==a?"":a+""})),b=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,c,"value")||(this.value=c))});if(e){if((b=k.valHooks[e.type]||k.valHooks[e.nodeName.toLowerCase()])&& +"get"in b&&void 0!==(c=b.get(e,"value")))return c;c=e.value;return"string"===typeof c?c.replace(ec,""):null==c?"":c}}});k.extend({valHooks:{option:{get:function(a){var b=k.find.attr(a,"value");return null!=b?b:k.trim(k.text(a)).replace(fc," ")}},select:{get:function(a){for(var b,c=a.options,d=a.selectedIndex,e=(a="select-one"===a.type||0>d)?null:[],f=a?d+1:c.length,h=0>d?f:a?d:0;hd.indexOf(" "+f+" ")&&(d+=f+" ");d=k.trim(d);e!==d&&k.attr(c,"class",d)}return this},removeClass:function(a){var b, +c,d,e,f,h,l=0;if(k.isFunction(a))return this.each(function(b){k(this).removeClass(a.call(this,b,U(this)))});if(!arguments.length)return this.attr("class","");if("string"===typeof a&&a)for(b=a.match(ra)||[];c=this[l++];)if(e=U(c),d=1===c.nodeType&&(" "+e+" ").replace(Hb," ")){for(h=0;f=b[h++];)for(;-1a||304===a;if(e){M=n;for(var D=y,H,E,O,L,ga=M.contents,S=M.dataTypes;"*"===S[0];)S.shift(),void 0===E&&(E=M.mimeType||D.getResponseHeader("Content-Type"));if(E)for(L in ga)if(ga[L]&&ga[L].test(E)){S.unshift(L);break}if(S[0]in e)O=S[0];else{for(L in e){if(!S[0]||M.converters[L+" "+S[0]]){O=L;break}H|| +(H=L)}O=O||H}O?(O!==S[0]&&S.unshift(O),M=e[O]):M=void 0}a:{e=n;H=M;E=y;O=f;var A,v,J,D={},ga=e.dataTypes.slice();if(ga[1])for(v in e.converters)D[v.toLowerCase()]=e.converters[v];for(L=ga.shift();L;)if(e.responseFields[L]&&(E[e.responseFields[L]]=H),!J&&O&&e.dataFilter&&(H=e.dataFilter(H,e.dataType)),J=L,L=ga.shift())if("*"===L)L=J;else if("*"!==J&&J!==L){v=D[J+" "+L]||D["* "+L];if(!v)for(A in D)if(M=A.split(" "),M[1]===L&&(v=D[J+" "+M[0]]||D["* "+M[0]])){!0===v?v=D[A]:!0!==D[A]&&(L=M[0],ga.unshift(M[1])); +break}if(!0!==v)if(v&&e["throws"])H=v(H);else try{H=v(H)}catch(G){M={state:"parsererror",error:v?G:"No conversion from "+J+" to "+L};break a}}M={state:"success",data:H}}if(f)n.ifModified&&((F=y.getResponseHeader("Last-Modified"))&&(k.lastModified[h]=F),(F=y.getResponseHeader("etag"))&&(k.etag[h]=F)),204===a||"HEAD"===n.type?F="nocontent":304===a?F="notmodified":(F=M.state,p=M.data,r=M.error,f=!r);else if(r=F,a||!F)F="error",0>a&&(a=0);y.status=a;y.statusText=(c||F)+"";f?w.resolveWith(K,[p,F,y]):w.rejectWith(K, +[y,F,r]);y.statusCode(B);B=void 0;m&&u.trigger(f?"ajaxSuccess":"ajaxError",[y,n,f?p:r]);q.fireWith(K,[y,F]);m&&(u.trigger("ajaxComplete",[y,n]),--k.active||k.event.trigger("ajaxStop"))}}"object"===typeof a&&(c=a,a=void 0);c=c||{};var e,f,h,l,g,m,C,p,n=k.ajaxSetup({},c),K=n.context||n,u=n.context&&(K.nodeType||K.jquery)?k(K):k.event,w=k.Deferred(),q=k.Callbacks("once memory"),B=n.statusCode||{},r={},M={},x=0,D="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(2===x){if(!p)for(p={};b= +lc.exec(l);)p[b[1].toLowerCase()]=b[2];b=p[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===x?l:null},setRequestHeader:function(a,b){var c=a.toLowerCase();x||(a=M[c]=M[c]||a,r[a]=b);return this},overrideMimeType:function(a){x||(n.mimeType=a);return this},statusCode:function(a){var b;if(a)if(2>x)for(b in a)B[b]=[B[b],a[b]];else y.always(a[y.status]);return this},abort:function(a){a=a||D;C&&C.abort(a);d(0,a);return this}};w.promise(y).complete=q.add;y.success=y.done; +y.error=y.fail;n.url=((a||n.url||Kb)+"").replace(kc,"").replace(nc,$a[1]+"//");n.type=c.method||c.type||n.method||n.type;n.dataTypes=k.trim(n.dataType||"*").toLowerCase().match(ra)||[""];null==n.crossDomain&&(e=Rb.exec(n.url.toLowerCase()),n.crossDomain=!(!e||e[1]===$a[1]&&e[2]===$a[2]&&(e[3]||("http:"===e[1]?"80":"443"))===($a[3]||("http:"===$a[1]?"80":"443"))));n.data&&n.processData&&"string"!==typeof n.data&&(n.data=k.param(n.data,n.traditional));Sa(Sb,n,c,y);if(2===x)return y;(m=k.event&&n.global)&& +0===k.active++&&k.event.trigger("ajaxStart");n.type=n.type.toUpperCase();n.hasContent=!mc.test(n.type);h=n.url;n.hasContent||(n.data&&(h=n.url+=(Jb.test(h)?"&":"?")+n.data,delete n.data),!1===n.cache&&(n.url=Qb.test(h)?h.replace(Qb,"$1_="+Ib++):h+(Jb.test(h)?"&":"?")+"_="+Ib++));n.ifModified&&(k.lastModified[h]&&y.setRequestHeader("If-Modified-Since",k.lastModified[h]),k.etag[h]&&y.setRequestHeader("If-None-Match",k.etag[h]));(n.data&&n.hasContent&&!1!==n.contentType||c.contentType)&&y.setRequestHeader("Content-Type", +n.contentType);y.setRequestHeader("Accept",n.dataTypes[0]&&n.accepts[n.dataTypes[0]]?n.accepts[n.dataTypes[0]]+("*"!==n.dataTypes[0]?", "+Tb+"; q=0.01":""):n.accepts["*"]);for(f in n.headers)y.setRequestHeader(f,n.headers[f]);if(n.beforeSend&&(!1===n.beforeSend.call(K,y,n)||2===x))return y.abort();D="abort";for(f in{success:1,error:1,complete:1})y[f](n[f]);if(C=Sa(Ab,n,c,y)){y.readyState=1;m&&u.trigger("ajaxSend",[y,n]);if(2===x)return y;n.async&&0x)d(-1,H);else throw H;}}else d(-1,"No Transport");return y},getJSON:function(a,b,c){return k.get(a,b,c,"json")},getScript:function(a,b){return k.get(a,void 0,b,"script")}});k.each(["get","post"],function(a,b){k[b]=function(a,c,d,e){k.isFunction(c)&&(e=e||d,d=c,c=void 0);return k.ajax(k.extend({url:a,type:b,dataType:e,data:c,success:d},k.isPlainObject(a)&&a))}});k._evalUrl=function(a){return k.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1, +global:!1,"throws":!0})};k.fn.extend({wrapAll:function(a){if(k.isFunction(a))return this.each(function(b){k(this).wrapAll(a.call(this,b))});if(this[0]){var b=k(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return k.isFunction(a)?this.each(function(b){k(this).wrapInner(a.call(this,b))}):this.each(function(){var b=k(this), +c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=k.isFunction(a);return this.each(function(c){k(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){k.nodeName(this,"body")||k(this).replaceWith(this.childNodes)}).end()}});k.expr.filters.hidden=function(a){return z.reliableHiddenOffsets()?0>=a.offsetWidth&&0>=a.offsetHeight&&!a.getClientRects().length:qa(a)};k.expr.filters.visible=function(a){return!k.expr.filters.hidden(a)};var oc=/%20/g, +Zb=/\[\]$/,Ub=/\r?\n/g,pc=/^(?:submit|button|image|reset|file)$/i,qc=/^(?:input|select|textarea|keygen)/i;k.param=function(a,b){var c,d=[],e=function(a,b){b=k.isFunction(b)?b():null==b?"":b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};void 0===b&&(b=k.ajaxSettings&&k.ajaxSettings.traditional);if(k.isArray(a)||a.jquery&&!k.isPlainObject(a))k.each(a,function(){e(this.name,this.value)});else for(c in a)xa(c,a[c],b,e);return d.join("&").replace(oc,"+")};k.fn.extend({serialize:function(){return k.param(this.serializeArray())}, +serializeArray:function(){return this.map(function(){var a=k.prop(this,"elements");return a?k.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!k(this).is(":disabled")&&qc.test(this.nodeName)&&!pc.test(a)&&(this.checked||!cb.test(a))}).map(function(a,b){var c=k(this).val();return null==c?null:k.isArray(c)?k.map(c,function(a){return{name:b.name,value:a.replace(Ub,"\r\n")}}):{name:b.name,value:c.replace(Ub,"\r\n")}}).get()}});k.ajaxSettings.xhr=void 0!==b.ActiveXObject?function(){return this.isLocal? +Fa():8").append(k.parseHTML(a)).find(d): +a)}).always(c&&function(a,b){h.each(function(){c.apply(this,f||[a.responseText,b,a])})});return this};k.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){k.fn[b]=function(a){return this.on(b,a)}});k.expr.filters.animated=function(a){return k.grep(k.timers,function(b){return a===b.elem}).length};k.offset={setOffset:function(a,b,c){var d,e,f,h=k.css(a,"position"),l=k(a),g={};"static"===h&&(a.style.position="relative");f=l.offset();e=k.css(a,"top");d=k.css(a, +"left");("absolute"===h||"fixed"===h)&&-1").outerWidth(1).jquery||b.each(["Width","Height"],function(a,d){function f(a,c,d,e){b.each(g,function(){c-=parseFloat(b.css(a,"padding"+this))||0;d&&(c-=parseFloat(b.css(a,"border"+this+"Width"))||0);e&&(c-=parseFloat(b.css(a,"margin"+this))||0)});return c}var g="Width"===d?["Left","Right"]:["Top","Bottom"],h=d.toLowerCase(),l={innerWidth:b.fn.innerWidth,innerHeight:b.fn.innerHeight,outerWidth:b.fn.outerWidth, +outerHeight:b.fn.outerHeight};b.fn["inner"+d]=function(a){return void 0===a?l["inner"+d].call(this):this.each(function(){b(this).css(h,f(this,a)+"px")})};b.fn["outer"+d]=function(a,c){return"number"!==typeof a?l["outer"+d].call(this,a):this.each(function(){b(this).css(h,f(this,a,!0,c)+"px")})}});b.fn.addBack||(b.fn.addBack=function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))});b("").data("a-b","a").removeData("a-b").data("a-b")&&(b.fn.removeData=function(a){return function(d){return arguments.length? +a.call(this,b.camelCase(d)):a.call(this)}}(b.fn.removeData));b.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());b.fn.extend({focus:function(a){return function(d,f){return"number"===typeof d?this.each(function(){var a=this;setTimeout(function(){b(a).focus();f&&f.call(a)},d)}):a.apply(this,arguments)}}(b.fn.focus),disableSelection:function(){var a="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(a+".ui-disableSelection",function(a){a.preventDefault()})}}(), +enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(a){if(void 0!==a)return this.css("zIndex",a);if(this.length){a=b(this[0]);for(var d;a.length&&a[0]!==document;){d=a.css("position");if("absolute"===d||"relative"===d||"fixed"===d)if(d=parseInt(a.css("zIndex"),10),!isNaN(d)&&0!==d)return d;a=a.parent()}}return 0}});b.ui.plugin={add:function(a,d,f){var g;a=b.ui[a].prototype;for(g in f)a.plugins[g]=a.plugins[g]||[],a.plugins[g].push([d,f[g]])},call:function(a,b,d, +g){if((b=a.plugins[b])&&(g||a.element[0].parentNode&&11!==a.element[0].parentNode.nodeType))for(g=0;g",options:{disabled:!1, +create:null},_createWidget:function(c,d){d=b(d||this.defaultElement||this)[0];this.element=b(d);this.uuid=a++;this.eventNamespace="."+this.widgetName+this.uuid;this.bindings=b();this.hoverable=b();this.focusable=b();d!==this&&(b.data(d,this.widgetFullName,this),this._on(!0,this.element,{remove:function(a){a.target===d&&this.destroy()}}),this.document=b(d.style?d.ownerDocument:d.document||d),this.window=b(this.document[0].defaultView||this.document[0].parentWindow));this.options=b.widget.extend({}, +this.options,this._getCreateOptions(),c);this._create();this._trigger("create",null,this._getCreateEventData());this._init()},_getCreateOptions:b.noop,_getCreateEventData:b.noop,_create:b.noop,_init:b.noop,destroy:function(){this._destroy();this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(b.camelCase(this.widgetFullName));this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled");this.bindings.unbind(this.eventNamespace); +this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")},_destroy:b.noop,widget:function(){return this.element},option:function(a,d){var f=a,g,h,l;if(0===arguments.length)return b.widget.extend({},this.options);if("string"===typeof a)if(f={},g=a.split("."),a=g.shift(),g.length){h=f[a]=b.widget.extend({},this.options[a]);for(l=0;l li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"}, +showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var a=this.options;this.prevShow=this.prevHide=b();this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist");a.collapsible||!1!==a.active&&null!=a.active||(a.active=0);this._processPanels();0>a.active&&(a.active+=this.headers.length);this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next(): +b()}},_createIcons:function(){var a=this.options.icons;a&&(b("").addClass("ui-accordion-header-icon ui-icon "+a.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(a.header).addClass(a.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var a;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"); +this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId();this._destroyIcons();a=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(); +"content"!==this.options.heightStyle&&a.css("height","")},_setOption:function(a,b){"active"===a?this._activate(b):("event"===a&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(b)),this._super(a,b),"collapsible"!==a||b||!1!==this.options.active||this._activate(0),"icons"===a&&(this._destroyIcons(),b&&this._createIcons()),"disabled"===a&&(this.element.toggleClass("ui-state-disabled",!!b).attr("aria-disabled",b),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled", +!!b)))},_keydown:function(a){if(!a.altKey&&!a.ctrlKey){var d=b.ui.keyCode,c=this.headers.length,e=this.headers.index(a.target),f=!1;switch(a.keyCode){case d.RIGHT:case d.DOWN:f=this.headers[(e+1)%c];break;case d.LEFT:case d.UP:f=this.headers[(e-1+c)%c];break;case d.SPACE:case d.ENTER:this._eventHandler(a);break;case d.HOME:f=this.headers[0];break;case d.END:f=this.headers[c-1]}f&&(b(a.target).attr("tabIndex",-1),b(f).attr("tabIndex",0),f.focus(),a.preventDefault())}},_panelKeyDown:function(a){a.keyCode=== +b.ui.keyCode.UP&&a.ctrlKey&&b(a.currentTarget).prev().focus()},refresh:function(){var a=this.options;this._processPanels();!1===a.active&&!0===a.collapsible||!this.headers.length?(a.active=!1,this.active=b()):!1===a.active?this._activate(0):this.active.length&&!b.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(a.active=!1,this.active=b()):this._activate(Math.max(0,a.active-1)):a.active=this.headers.index(this.active);this._destroyIcons(); +this._refresh()},_processPanels:function(){var a=this.headers,b=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all");this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide();b&&(this._off(a.not(this.headers)),this._off(b.not(this.panels)))},_refresh:function(){var a,d=this.options,c=d.heightStyle,e=this.element.parent(); +this.active=this._findActive(d.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all");this.active.next().addClass("ui-accordion-content-active").show();this.headers.attr("role","tab").each(function(){var a=b(this),c=a.uniqueId().attr("id"),d=a.next(),e=d.uniqueId().attr("id");a.attr("aria-controls",e);d.attr("aria-labelledby",c)}).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(); +this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0);this._createIcons();this._setupEvents(d.event);"fill"===c?(a=e.height(),this.element.siblings(":visible").each(function(){var c=b(this),d=c.css("position");"absolute"!==d&&"fixed"!==d&&(a-=c.outerHeight(!0))}),this.headers.each(function(){a-=b(this).outerHeight(!0)}),this.headers.next().each(function(){b(this).height(Math.max(0, +a-b(this).innerHeight()+b(this).height()))}).css("overflow","auto")):"auto"===c&&(a=0,this.headers.next().each(function(){a=Math.max(a,b(this).css("height","").height())}).height(a))},_activate:function(a){a=this._findActive(a)[0];a!==this.active[0]&&(a=a||this.active[0],this._eventHandler({target:a,currentTarget:a,preventDefault:b.noop}))},_findActive:function(a){return"number"===typeof a?this.headers.eq(a):b()},_setupEvents:function(a){var d={keydown:"_keydown"};a&&b.each(a.split(" "),function(a, +b){d[b]="_eventHandler"});this._off(this.headers.add(this.headers.next()));this._on(this.headers,d);this._on(this.headers.next(),{keydown:"_panelKeyDown"});this._hoverable(this.headers);this._focusable(this.headers)},_eventHandler:function(a){var d=this.options,c=this.active,e=b(a.currentTarget),f=e[0]===c[0],g=f&&d.collapsible,h=g?b():e.next(),l=c.next(),h={oldHeader:c,oldPanel:l,newHeader:g?b():e,newPanel:h};a.preventDefault();f&&!d.collapsible||!1===this._trigger("beforeActivate",a,h)||(d.active= +g?!1:this.headers.index(e),this.active=f?b():e,this._toggle(h),c.removeClass("ui-accordion-header-active ui-state-active"),d.icons&&c.children(".ui-accordion-header-icon").removeClass(d.icons.activeHeader).addClass(d.icons.header),f||(e.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),d.icons&&e.children(".ui-accordion-header-icon").removeClass(d.icons.header).addClass(d.icons.activeHeader),e.next().addClass("ui-accordion-content-active")))},_toggle:function(a){var d= +a.newPanel,c=this.prevShow.length?this.prevShow:a.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0);this.prevShow=d;this.prevHide=c;this.options.animate?this._animate(d,c,a):(c.hide(),d.show(),this._toggleComplete(a));c.attr({"aria-hidden":"true"});c.prev().attr({"aria-selected":"false","aria-expanded":"false"});d.length&&c.length?c.prev().attr({tabIndex:-1,"aria-expanded":"false"}):d.length&&this.headers.filter(function(){return 0===parseInt(b(this).attr("tabIndex"),10)}).attr("tabIndex",-1); +d.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(a,b,c){var e,f,g,h=this,l=0,m=a.css("box-sizing"),p=a.length&&(!b.length||a.index()
");d=e.children()[0];b("body").append(e);a=d.offsetWidth;e.css("overflow","scroll");d=d.offsetWidth; +a===d&&(d=e[0].clientWidth);e.remove();return c=a-d},getScrollInfo:function(a){var c=a.isWindow||a.isDocument?"":a.element.css("overflow-x"),d=a.isWindow||a.isDocument?"":a.element.css("overflow-y"),c="scroll"===c||"auto"===c&&a.widthd?"left":0h?"top":0f(g(e),g(h))?l.important="horizontal":l.important="vertical";c.using.call(this,a,l)});m.offset(b.extend(R,{using:l}))})};b.ui.position={fit:{left:function(a,b){var c=b.within,d=c.isWindow?c.scrollLeft:c.offset.left,e=c.width,h=a.left-b.collisionPosition.marginLeft,c=d-h,l=h+b.collisionWidth-e-d;b.collisionWidth> +e?0=l?(d=a.left+c+b.collisionWidth-e-d,a.left+=c-d):a.left=0=c?d:c>l?d+e-b.collisionWidth:d:a.left=0e?0=l?(d=a.top+c+b.collisionHeight-e-d,a.top+=c-d):a.top=0=c?d:c>l?d+e-b.collisionHeight:d:a.top=0c){if(d=a.left+h+m+p+b.collisionWidth-e-d,0>d||dc){if(d=a.top+h+m+p+b.collisionHeight-e-d,0>d||dd;a.innerHTML="";c.removeChild(a)})()})();return b.ui.position}); +(function(b){"function"===typeof define&&define.amd?define(["jquery","./core","./widget","./position"],b):b(jQuery)})(function(b){return b.widget("ui.menu",{version:"1.11.4",defaultElement:"