<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">@charset "UTF-8";
/**
 * @author Gabriel Verret &lt;1738127@etu.cegep-ste-foy.qc.ca&gt;
**/
/**
 * ------------------
 * TABLE DES MATIÈRES
 * ------------------
 * BIBLIOTHÈQUES (dans le dossier bower_components)
 ** Normalize
 ** Susy
 * UTILITAIRES
 ** variables
*/
/*** Utilitaires ***/
/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon concept
 * ------------------
 * TABLE DES MATIÈRES
 * ------------------
 * Polices de caractères
 * Palette de couleurs
 * Points de rupture
 **/
/** Polices de caractères **/
/*
@font-face {
  font-family: "Nom Police";
          src: 	url('Nom-Police.woff2') format('woff2'),
         		url('Nom-Police.woff') format('woff'),
         		url('Nom-Police.ttf') format('truetype');
}
*/
@import url("https://fonts.googleapis.com/css?family=Roboto:400,500&amp;display=swap");
/** Palette de couleurs **/
/** Points de rupture **/
/* tablet, landscape iPad, lo-res laptops ands desktops */
/* hi-res laptops and desktops */
/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier au besoin
 * ----------------------------
 * TABLE DES MATIÈRES - MIXINS
 * ----------------------------
 * base (BoxSizing, Clearfix)
 * accessibilité
 * typographie
 * @todo Personnaliser au besoin
 */
/******** Utilitaires de base (BoxSizing, Clearfix) *********/
/* BoxSizing */
/* Clearfix: pour contrer le problème des enfants flottants*/
.cf:after {
  content: " ";
  display: table;
  clear: both;
}

/******** Utilitaires pour accessibilité *********/
.visuallyhidden,
.screen-reader-only {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus,
.screen-reader-only.focusable:active,
.screen-reader-only.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  white-space: normal;
  width: auto;
}

/******** Utilitaires pour typographie *********/
/* Utilitaire de mise en page */
/*** Grille ***/
/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - En tête (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
header {
  background-color: #F5F5F5;
  padding: 20px;
  height: 65px;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
}

@media (min-width: 600px) {
  header {
    height: 85px;
  }
}

@media (min-width: 1000px) {
  header {
    height: 85px;
  }
}

header h1 {
  margin: 0;
}

header h1 img {
  width: 200px;
}

header p {
  margin-top: 0;
}

header .contenu {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - Étape 1 [Mon genre] (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
.inscription--section {
  margin-top: 10px;
  padding: 10px;
  border: none;
}

.inscription--section--legende {
  line-height: 24px;
}

.inscription--section--radio {
  padding-left: 0;
  list-style-type: none;
}

.inscription--section--radio--champ {
  position: relative;
  display: inline-block;
  color: rgba(0, 0, 0, 0.87);
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 5px;
}

.inscription--section--radio--champ &gt; input {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  z-index: -1;
  position: absolute;
  left: -10px;
  top: -8px;
  display: block;
  margin: 0;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0.6);
  outline: none;
  opacity: 0;
  -webkit-transform: scale(1);
  transform: scale(1);
  pointer-events: none;
  transition: opacity 0.3s, -webkit-transform 0.2s;
  transition: opacity 0.3s, transform 0.2s;
  transition: opacity 0.3s, transform 0.2s, -webkit-transform 0.2s;
}

.inscription--section--radio--champ &gt; input:checked {
  background-color: #6200ee;
}

.inscription--section--radio--champ &gt; input:checked + span::before {
  border-color: #6200ee;
}

.inscription--section--radio--champ &gt; input:checked + span::after {
  -webkit-transform: translate(5px, 5px) scale(1);
  transform: translate(5px, 5px) scale(1);
}

.inscription--section--radio--champ &gt; span {
  display: inline-block;
  width: 100%;
  cursor: pointer;
}

.inscription--section--radio--champ &gt; span::before {
  content: "";
  display: inline-block;
  box-sizing: border-box;
  margin: 2px 10px 2px 0;
  border: solid 2px;
  border-color: rgba(0, 0, 0, 0.6);
  border-radius: 50%;
  width: 20px;
  height: 20px;
  vertical-align: top;
  transition: border-color 0.2s;
}

.inscription--section--radio--champ &gt; span::after {
  content: "";
  display: block;
  position: absolute;
  top: 3px;
  left: 0;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  background-color: #6200ee;
  -webkit-transform: translate(5px, 5px) scale(0);
  transform: translate(5px, 5px) scale(0);
  transition: -webkit-transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;
}

.inscription--section--radio--champ:hover &gt; input {
  opacity: 0.04;
}

.inscription--section--radio--champ &gt; input:focus {
  opacity: 0.12;
}

.inscription--section--radio--champ:hover &gt; input:focus {
  opacity: 0.16;
}

.inscription--section--radio--champ span {
  font-size: 12px;
  line-height: 25px;
  letter-spacing: 0.4px;
}

.inscription--section--checkbox--champ {
  z-index: 0;
  position: relative;
  display: inline-block;
  color: rgba(0, 0, 0, 0.87);
  font-size: 16px;
  line-height: 1.5;
}

.inscription--section--checkbox--champ &gt; input {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  z-index: -1;
  position: absolute;
  left: -10px;
  top: -8px;
  display: block;
  margin: 0;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0.6);
  box-shadow: none;
  outline: none;
  opacity: 0;
  -webkit-transform: scale(1);
  transform: scale(1);
  pointer-events: none;
  transition: opacity 0.3s, -webkit-transform 0.2s;
  transition: opacity 0.3s, transform 0.2s;
  transition: opacity 0.3s, transform 0.2s, -webkit-transform 0.2s;
}

.inscription--section--checkbox--champ &gt; span {
  display: inline-block;
  width: 100%;
  cursor: pointer;
}

.inscription--section--checkbox--champ &gt; span::before {
  content: "";
  display: inline-block;
  box-sizing: border-box;
  margin: 3px 11px 3px 1px;
  border: solid 2px;
  border-color: rgba(0, 0, 0, 0.6);
  border-radius: 2px;
  width: 18px;
  height: 18px;
  vertical-align: top;
  transition: border-color 0.2s, background-color 0.2s;
}

.inscription--section--checkbox--champ &gt; span::after {
  content: "";
  display: block;
  position: absolute;
  top: 3px;
  left: 1px;
  width: 10px;
  height: 5px;
  border: solid 2px transparent;
  border-right: none;
  border-top: none;
  -webkit-transform: translate(3px, 4px), rotate(-45 deg);
  transform: translate(3px, 4px), rotate(-45 deg);
}

.inscription--section--checkbox--champ &gt; input:checked, .inscription--section--checkbox--champ &gt; input:indeterminate {
  background-color: #6200EE;
}

.inscription--section--checkbox--champ &gt; input:checked + span::before, .inscription--section--checkbox--champ &gt; input:indeterminate + span::before {
  border-color: #6200EE;
  background-color: #6200EE;
}

.inscription--section--checkbox--champ &gt; input:checked + span::after, .inscription--section--checkbox--champ &gt; input:indeterminate + span::after {
  border-color: #6200EE;
}

.inscription--section--checkbox--champ &gt; input:indeterminate + span::after {
  border-left: none;
  -webkit-transform: translate(4px, 3px);
  transform: translate(4px, 3px);
}

.inscription--section--checkbox--champ:hover &gt; input {
  opacity: 0.04;
}

.inscription--section--checkbox--champ &gt; input:focus {
  opacity: 0.12;
}

.inscription--section--checkbox--champ:hover &gt; input:focus {
  opacity: 0.16;
}

.inscription--section--checkbox--champ &gt; input:active {
  opacity: 1;
  -webkit-transform: scale(0);
  transform: scale(0);
  transition: opacity 0s, -webkit-transform 0s;
  transition: transform 0s, opacity 0s;
  transition: transform 0s, opacity 0s, -webkit-transform 0s;
}

.inscription--section--checkbox--champ &gt; input:active + span::before {
  border-color: #6200EE;
}

.inscription--section--checkbox--champ &gt; input:checked:active + span::before {
  border-color: transparent;
  background-color: rgba(0, 0, 0, 0.6);
}

.genre img {
  vertical-align: middle;
}

/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - Étape 2 [Mon profil] (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
@media (max-width: 600px) {
  .inscription--section {
    max-width: 300px;
    margin-top: 50px;
  }
}

.inscription--section--champ {
  position: relative;
  display: inline-block;
  padding-top: 6px;
  font-size: 16px;
  line-height: 1.5;
  overflow: hidden;
}

@media (max-width: 600px) {
  .inscription--section--champ {
    margin: 10px 0 10px 0;
  }
}

.inscription--section--champ &gt; input, .inscription--section--champ &gt; select {
  box-sizing: border-box;
  margin: 0;
  border: solid 1px;
  border-color: rgba(0, 0, 0, 0.6);
  border-top-color: transparent;
  border-radius: 4px;
  padding: 15px 13px 15px;
  width: 100%;
  height: inherit;
  color: rgba(0, 0, 0, 0.87);
  background-color: transparent;
  box-shadow: none;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  caret-color: #6200EE;
  transition: border 0.2s, box-shadow 0.2s;
}

.inscription--section--champ &gt; select {
  height: 56px;
}

.inscription--section--champ &gt; input + label, .inscription--section--champ &gt; select + label {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  border-color: rgba(0, 0, 0, 0.6);
  width: 100%;
  max-height: 100%;
  color: rgba(0, 0, 0, 0.6);
  font-size: 75%;
  line-height: 15px;
  cursor: text;
  transition: color 0.2s, font-size 0.2s, line-height 0.2s;
}

.inscription--section--champ &gt; input + label::before, .inscription--section--champ &gt; input + label::after, .inscription--section--champ &gt; select + label::before, .inscription--section--champ &gt; select + label::after {
  content: "";
  display: block;
  box-sizing: border-box;
  margin-top: 6px;
  border-top: solid 1px;
  border-top-color: rgba(0, 0, 0, 0.6);
  min-width: 10px;
  height: 8px;
  pointer-events: none;
  box-shadow: inset 0 1px transparent;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.inscription--section--champ &gt; input + label::before, .inscription--section--champ &gt; select + label::before {
  margin-right: 4px;
  border-left: solid 1px transparent;
  border-radius: 4px 0;
}

.inscription--section--champ &gt; input + label::after, .inscription--section--champ &gt; select + label::after {
  flex-grow: 1;
  margin-left: 4px;
  border-right: solid 1px transparent;
  border-radius: 0 4px;
}

.inscription--section--champ:hover &gt; input, .inscription--section--champ:hover &gt; select {
  border-color: rgba(0, 0, 0, 0.87);
  border-top-color: transparent;
}

.inscription--section--champ:hover &gt; input + label::before, .inscription--section--champ:hover &gt; input + label::after {
  border-top-color: rgba(0, 0, 0, 0.87);
}

.inscription--section--champ:hover &gt; input:not(:focus):placeholder-shown {
  border-color: rgba(0, 0, 0, 0.87);
}

.inscription--section--champ &gt; input:not(:focus):placeholder-shown {
  border-color: rgba(0, 0, 0, 0.6);
}

.inscription--section--champ &gt; input:not(:focus):placeholder-shown + label {
  font-size: inherit;
  line-height: 68px;
}

.inscription--section--champ &gt; input:not(:focus):placeholder-shown + label::before, .inscription--section--champ &gt; input:not(:focus):placeholder-shown + label::after {
  border-top-color: transparent;
}

.inscription--section--champ &gt; input:focus, .inscription--section--champ &gt; select:focus {
  border-color: #6200EE;
  border-top-color: transparent;
  box-shadow: inset 1px 0, inset -1px 0, inset 0 -1px;
  outline: none;
}

.inscription--section--champ &gt; input:focus + label, .inscription--section--champ &gt; select:focus + label {
  color: #6200EE;
}

.inscription--section--champ &gt; input:focus + label::before, .inscription--section--champ &gt; input:focus + label::after, .inscription--section--champ &gt; select:focus + label::before, .inscription--section--champ &gt; select:focus + label::after {
  box-shadow: inset 0 1px;
}

/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - Étape 1 [Mon genre] (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
.inscription--boutonInscrire {
  float: right;
  margin: 30px;
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  border: none;
  border-radius: 4px;
  padding: 0 16px;
  min-width: 64px;
  height: 36px;
  vertical-align: middle;
  text-align: center;
  text-overflow: ellipsis;
  text-transform: uppercase;
  color: #fff;
  background-color: #6200EE;
  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  font-size: 14px;
  font-weight: 500;
  line-height: 36px;
  overflow: hidden;
  outline: none;
  cursor: pointer;
  transition: box-shadow 0.2s;
}

.inscription--boutonInscrire::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #fff;
  opacity: 0;
  transition: opacity 0.2s;
}

.inscription--boutonInscrire::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  padding: 50%;
  width: 32px;
  height: 32px;
  background-color: #fff;
  opacity: 0;
  -webkit-transform: translate(-50%, -50%) scale(1);
  transform: translate(-50%, -50%) scale(1);
  transition: opacity 1s, -webkit-transform 0.5s;
  transition: opacity 1s, transform 0.5s;
  transition: opacity 1s, transform 0.5s, -webkit-transform 0.5s;
}

.inscription--boutonInscrire:hover, .inscription--boutonInscrire:focus {
  box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);
}

.inscription--boutonInscrire:hover::before {
  opacity: 0.08;
}

.inscription--boutonInscrire:focus::before {
  opacity: 0.24;
}

.inscription--boutonInscrire:hover:focus::before {
  opacity: 0.3;
}

.inscription--boutonInscrire:active {
  box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);
}

.inscription--boutonInscrire:active::after {
  opacity: 0.32;
  -webkit-transform: translate(-50%, -50%) scale(0);
  transform: translate(-50%, -50%) scale(0);
  transition: -webkit-transform 0s;
  transition: transform 0s;
  transition: transform 0s, -webkit-transform 0s;
}

.inscription--boutonInscrire:disabled {
  color: rgba(0, 0, 0, 0.38);
  background-color: rgba(0, 0, 0, 0.12);
  box-shadow: none;
  cursor: initial;
}

.inscription--boutonInscrire:disabled::before {
  opacity: 0;
}

.inscription--boutonInscrire:disabled::after {
  opacity: 0;
}

.inscription--boutonInscrire--conteneur {
  width: 100%;
  height: 100px;
}

/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - Pied de page (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
footer {
  background-color: #F5F5F5;
  padding: 20px 20px 30px 20px;
  text-align: center;
}

/*** Base ***/
/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - En tête (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
* {
  font-family: "Roboto", sans-serif;
  margin: 0;
}

main {
  margin: 15px;
}

@media (min-width: 600px) and (max-width: 1000px) {
  main {
    margin: 5%;
  }
}

@media (min-width: 1000px) {
  main {
    width: 1000px;
    margin-left: auto;
    margin-right: auto;
  }
}

.cache {
  display: none;
}

.inscription--erreur {
  color: white;
  margin: 10px 0 10px 0;
  width: 250px;
  background-color: darkred;
}

.inscription--erreur ul {
  margin: 10px;
}

.inscription--erreur--texte {
  padding: 10px;
}

.inscription--reussi .icone {
  margin-bottom: 6px;
}

.icone {
  height: 44px;
  padding: 10px;
}

/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - Typographie responsive (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
/** Base décimale **/
html {
  font-size: 62.5%;
}

body {
  /* 16px pour toutes les largeurs d'écran */
  font-size: 16px;
  font-size: 1.6rem;
  /* facteur multiplicateur de la taille de la police 1.375x16 = 22 */
  line-height: 1.375;
}

@media (min-width: 600px) {
  body {
    line-height: 1.5;
  }
}

@media (min-width: 1000px) {
  body {
    line-height: 1.75;
  }
}

/** Hiérarchie responsive **/
/*  plus proche = plus petit  &amp;  plus loin = plus grand */
/* TITRES NIVEAU 1 */
h1,
.h1 {
  /* = 32px */
  font-size: 32px;
  font-size: 3.2rem;
}

@media (min-width: 600px) {
  h1,
  .h1 {
    /* = 40px */
    font-size: 40px;
    font-size: 4rem;
  }
}

@media (min-width: 1000px) {
  h1,
  .h1 {
    /* = 48px */
    font-size: 48px;
    font-size: 4.8rem;
  }
}

/* TITRES NIVEAU 2 */
h2,
.h2 {
  /* = 24px */
  font-size: 24px;
  font-size: 2.4rem;
}

@media (min-width: 600px) {
  h2,
  .h2 {
    /* = 32px */
    font-size: 32px;
    font-size: 3.2rem;
  }
}

@media (min-width: 1000px) {
  h2,
  .h2 {
    /* = 36px */
    font-size: 36px;
    font-size: 3.6rem;
  }
}

/* TITRES NIVEAU 3 */
h3,
.h3 {
  /* = 18px */
  font-size: 18px;
  font-size: 1.8rem;
}

@media (min-width: 600px) {
  h3,
  .h3 {
    /* = 24px */
    font-size: 24px;
    font-size: 2.4rem;
  }
}

@media (min-width: 1000px) {
  h3,
  .h3 {
    /* = 30px */
    font-size: 30px;
    font-size: 3rem;
  }
}

/* TITRES NIVEAU 4 */
h4,
.h4 {
  /* = 16px */
  font-size: 16px;
  font-size: 1.6rem;
}

@media (min-width: 600px) {
  h4,
  .h4 {
    /* = 18px */
    font-size: 18px;
    font-size: 1.8rem;
  }
}

@media (min-width: 1000px) {
  h4,
  .h4 {
    /* = 22px */
    font-size: 22px;
    font-size: 2.2rem;
  }
}

.italique {
  font-style: italic;
}

/*** Modules ***/
/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - Étapes (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
.no-js .inscription--etape--1 {
  display: inherit;
}

.no-js .inscription--etape--2 {
  display: inherit;
}

.no-js .inscription--etape--3 {
  display: inherit;
}

.no-js .inscription--boutonContinuer {
  display: none;
}

.inscription--section {
  padding-left: 0;
}

.inscription--etape--titre {
  font-weight: normal;
  font-size: 18px;
  line-height: 56px;
  margin-top: 30px;
}

.inscription--boutonContinuer {
  width: 100%;
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  border: none;
  border-radius: 4px;
  padding: 0 8px;
  min-width: 64px;
  height: 36px;
  vertical-align: middle;
  text-align: right;
  text-overflow: ellipsis;
  text-transform: uppercase;
  color: #6200EE;
  background-color: transparent;
  font-size: 14px;
  font-weight: 500;
  line-height: 36px;
  overflow: hidden;
  outline: none;
  cursor: pointer;
  transition: box-shadow 0.2s;
}

.inscription--boutonContinuer:disabled {
  color: rgba(0, 0, 0, 0.38);
  background-color: transparent;
  cursor: initial;
}

/**
 * @author Prénom Nom courriel
 * @todo ADAPTER ce fichier selon le projet
**/
/**
 * --------------------------------------------------------
 * TABLE DES MATIÈRES - Étapes (Mobile First)
 * --------------------------------------------------------
 * Base décimale
 * Hiérarchie responsive
 */
.indicateurEtapes {
  table-layout: fixed;
  border-spacing: 5px;
  width: 100%;
}

.indicateurEtapes--numeroEtape {
  padding: 15px;
  border: 1px solid #000;
}

.etapeEnCours {
  background-color: #6200EE;
  color: #fff;
}

.etapeRemplie {
  background-color: #00AF55;
  color: #fff;
}

/*** Normalize ***/
/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/**
 * Remove default margin.
 */
body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox &lt; 22.
 */
[hidden],
template {
  display: none;
}

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0;
}

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold;
}

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic;
}

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000;
}

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0;
}

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden;
}

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px;
}

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0;
}

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto;
}

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */
}

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal;
}

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box;
}

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto;
}

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold;
}

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiLCJzdHlsZXMuc2NzcyIsInV0aWxpdGFpcmVzL192YXJpYWJsZXMuc2NzcyIsInV0aWxpdGFpcmVzL19taXhpbnMuc2NzcyIsImdyaWxsZS9fZW5UZXRlLnNjc3MiLCJncmlsbGUvX21vbkdlbnJlLnNjc3MiLCJncmlsbGUvX21vblByb2ZpbC5zY3NzIiwiZ3JpbGxlL19tb25Db21wdGUuc2NzcyIsImdyaWxsZS9fcGllZERlUGFnZS5zY3NzIiwiYmFzZS9fZ2VuZXJhbC5zY3NzIiwiYmFzZS9fdHlwby5zY3NzIiwibW9kdWxlcy9fZXRhcGVzLnNjc3MiLCJtb2R1bGVzL19pbmRpY2F0ZXVyRXRhcGVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLnNjc3Mvbm9ybWFsaXplLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOztHQUVHO0FBRUg7Ozs7Ozs7OztFQVNFO0FBRUYscUJBQXFCO0FDZnJCOzs7Ozs7Ozs7SUFTSTtBQUVKLDZCQUE2QjtBQUM3Qjs7Ozs7OztFQU9FO0FBQ0YsbUZBQVk7QUFJWiwyQkFBMkI7QUFlM0IseUJBQXlCO0FBRXpCLDBEQUEwRDtBQUUxRCxpQ0FBaUM7QUMzQ2pDOzs7Ozs7Ozs7O0dBVUc7QUFJSCw4REFBOEQ7QUFDOUQsZUFBZTtBQU9mLDZEQUE2RDtBQUV6RDtFQUNJLGFBQVk7RUFDWixlQUFjO0VBQ2QsWUFBVztDQUNkOztBQU9MLG1EQUFtRDtBQTJCbkQ7O0VBdkJJLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsWUFBVztFQUNYLGFBQVk7RUFDWixpQkFBZ0I7RUFDaEIsV0FBVTtFQUNWLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsV0FBVTtDQWtCYjs7QUFkRzs7O0VBRUksV0FBVTtFQUNWLGFBQVk7RUFDWixVQUFTO0VBQ1Qsa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixvQkFBbUI7RUFDbkIsWUFBVztDQUNkOztBQVNMLGlEQUFpRDtBQWlC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ekI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFRSxnQkFBZTtDQUNoQjs7QUFFRDs7R0FFRztBQUVIOztFQUVFLFVBQVM7RUFDVCxXQUFVO0NBQ1g7O0FBRUQ7OztHQUdHO0FBRUg7RUFDRSxvQkFBbUI7Q0FDcEI7O0FBRUQ7Ozs7OztHQU1HO0FBRUg7O0VBRUUsdUJBQXNCO0VBQUUsT0FBTztFQUMvQixXQUFVO0VBQUUsT0FBTztDQUNwQjs7QUFFRDs7OztHQUlHO0FBRUg7O0VBRUUsYUFBWTtDQUNiOztBQUVEOzs7O0dBSUc7QUFFSDtFQUNFLDhCQUE2QjtFQUFFLE9BQU87RUFFTCxPQUFPO0VBQ3hDLHdCQUF1QjtDQUN4Qjs7QUFFRDs7OztHQUlHO0FBRUg7O0VBRUUseUJBQXdCO0NBQ3pCOztBQUVEOztHQUVHO0FBRUg7RUFDRSwwQkFBeUI7RUFDekIsY0FBYTtFQUNiLCtCQUE4QjtDQUMvQjs7QUFFRDs7O0dBR0c7QUFFSDtFQUNFLFVBQVM7RUFBRSxPQUFPO0VBQ2xCLFdBQVU7RUFBRSxPQUFPO0NBQ3BCOztBQUVEOztHQUVHO0FBRUg7RUFDRSxlQUFjO0NBQ2Y7O0FBRUQ7OztHQUdHO0FBRUg7RUFDRSxrQkFBaUI7Q0FDbEI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUg7RUFDRSwwQkFBeUI7RUFDekIsa0JBQWlCO0NBQ2xCOztBQUVEOztFQUVFLFdBQVU7Q0FDWCIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBAYXV0aG9yIEdhYnJpZWwgVmVycmV0IDwxNzM4MTI3QGV0dS5jZWdlcC1zdGUtZm95LnFjLmNhPlxuKiovXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLVxuICogVEFCTEUgREVTIE1BVEnDiFJFU1xuICogLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCSUJMSU9USMOIUVVFUyAoZGFucyBsZSBkb3NzaWVyIGJvd2VyX2NvbXBvbmVudHMpXG4gKiogTm9ybWFsaXplXG4gKiogU3VzeVxuICogVVRJTElUQUlSRVNcbiAqKiB2YXJpYWJsZXNcbiovXG4vKioqIFV0aWxpdGFpcmVzICoqKi9cbi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGNvbmNlcHRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLVxuICogVEFCTEUgREVTIE1BVEnDiFJFU1xuICogLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBQb2xpY2VzIGRlIGNhcmFjdMOocmVzXG4gKiBQYWxldHRlIGRlIGNvdWxldXJzXG4gKiBQb2ludHMgZGUgcnVwdHVyZVxuICoqL1xuLyoqIFBvbGljZXMgZGUgY2FyYWN0w6hyZXMgKiovXG4vKlxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk5vbSBQb2xpY2VcIjtcbiAgICAgICAgICBzcmM6IFx0dXJsKCdOb20tUG9saWNlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICAgXHRcdHVybCgnTm9tLVBvbGljZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICBcdFx0dXJsKCdOb20tUG9saWNlLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cbiovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86NDAwLDUwMCZkaXNwbGF5PXN3YXBcIik7XG4vKiogUGFsZXR0ZSBkZSBjb3VsZXVycyAqKi9cbi8qKiBQb2ludHMgZGUgcnVwdHVyZSAqKi9cbi8qIHRhYmxldCwgbGFuZHNjYXBlIGlQYWQsIGxvLXJlcyBsYXB0b3BzIGFuZHMgZGVza3RvcHMgKi9cbi8qIGhpLXJlcyBsYXB0b3BzIGFuZCBkZXNrdG9wcyAqL1xuLyoqXG4gKiBAYXV0aG9yIFByw6lub20gTm9tIGNvdXJyaWVsXG4gKiBAdG9kbyBBREFQVEVSIGNlIGZpY2hpZXIgYXUgYmVzb2luXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gTUlYSU5TXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBiYXNlIChCb3hTaXppbmcsIENsZWFyZml4KVxuICogYWNjZXNzaWJpbGl0w6lcbiAqIHR5cG9ncmFwaGllXG4gKiBAdG9kbyBQZXJzb25uYWxpc2VyIGF1IGJlc29pblxuICovXG4vKioqKioqKiogVXRpbGl0YWlyZXMgZGUgYmFzZSAoQm94U2l6aW5nLCBDbGVhcmZpeCkgKioqKioqKioqL1xuLyogQm94U2l6aW5nICovXG4vKiBDbGVhcmZpeDogcG91ciBjb250cmVyIGxlIHByb2Jsw6htZSBkZXMgZW5mYW50cyBmbG90dGFudHMqL1xuLmNmOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbn1cblxuLyoqKioqKioqIFV0aWxpdGFpcmVzIHBvdXIgYWNjZXNzaWJpbGl0w6kgKioqKioqKioqL1xuLnZpc3VhbGx5aGlkZGVuLFxuLnNjcmVlbi1yZWFkZXItb25seSB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMXB4O1xufVxuXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSwgLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTpmb2N1cyxcbi5zY3JlZW4tcmVhZGVyLW9ubHkuZm9jdXNhYmxlOmFjdGl2ZSxcbi5zY3JlZW4tcmVhZGVyLW9ubHkuZm9jdXNhYmxlOmZvY3VzIHtcbiAgY2xpcDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3aWR0aDogYXV0bztcbn1cblxuLyoqKioqKioqIFV0aWxpdGFpcmVzIHBvdXIgdHlwb2dyYXBoaWUgKioqKioqKioqL1xuLyogVXRpbGl0YWlyZSBkZSBtaXNlIGVuIHBhZ2UgKi9cbi8qKiogR3JpbGxlICoqKi9cbi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGxlIHByb2pldFxuKiovXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gRW4gdMOqdGUgKE1vYmlsZSBGaXJzdClcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCYXNlIGTDqWNpbWFsZVxuICogSGnDqXJhcmNoaWUgcmVzcG9uc2l2ZVxuICovXG5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUY1O1xuICBwYWRkaW5nOiAyMHB4O1xuICBoZWlnaHQ6IDY1cHg7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICBoZWFkZXIge1xuICAgIGhlaWdodDogODVweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIGhlYWRlciB7XG4gICAgaGVpZ2h0OiA4NXB4O1xuICB9XG59XG5cbmhlYWRlciBoMSB7XG4gIG1hcmdpbjogMDtcbn1cblxuaGVhZGVyIGgxIGltZyB7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuaGVhZGVyIHAge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG5oZWFkZXIgLmNvbnRlbnUge1xuICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiBAYXV0aG9yIFByw6lub20gTm9tIGNvdXJyaWVsXG4gKiBAdG9kbyBBREFQVEVSIGNlIGZpY2hpZXIgc2Vsb24gbGUgcHJvamV0XG4qKi9cbi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRBQkxFIERFUyBNQVRJw4hSRVMgLSDDiXRhcGUgMSBbTW9uIGdlbnJlXSAoTW9iaWxlIEZpcnN0KVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJhc2UgZMOpY2ltYWxlXG4gKiBIacOpcmFyY2hpZSByZXNwb25zaXZlXG4gKi9cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1sZWdlbmRlIHtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tcmFkaW8ge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1yYWRpby0tY2hhbXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLXJhZGlvLS1jaGFtcCA+IGlucHV0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgei1pbmRleDogLTE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwcHg7XG4gIHRvcDogLThweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MsIHRyYW5zZm9ybSAwLjJzO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLXJhZGlvLS1jaGFtcCA+IGlucHV0OmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLXJhZGlvLS1jaGFtcCA+IGlucHV0OmNoZWNrZWQgKyBzcGFuOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICM2MjAwZWU7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tcmFkaW8tLWNoYW1wID4gaW5wdXQ6Y2hlY2tlZCArIHNwYW46OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpIHNjYWxlKDEpO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLXJhZGlvLS1jaGFtcCA+IHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tcmFkaW8tLWNoYW1wID4gc3Bhbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDJweCAxMHB4IDJweCAwO1xuICBib3JkZXI6IHNvbGlkIDJweDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tcmFkaW8tLWNoYW1wID4gc3Bhbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDNweDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMGVlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDVweCkgc2NhbGUoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLXJhZGlvLS1jaGFtcDpob3ZlciA+IGlucHV0IHtcbiAgb3BhY2l0eTogMC4wNDtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1yYWRpby0tY2hhbXAgPiBpbnB1dDpmb2N1cyB7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tcmFkaW8tLWNoYW1wOmhvdmVyID4gaW5wdXQ6Zm9jdXMge1xuICBvcGFjaXR5OiAwLjE2O1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLXJhZGlvLS1jaGFtcCBzcGFuIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCB7XG4gIHotaW5kZXg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCA+IGlucHV0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgei1pbmRleDogLTE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwcHg7XG4gIHRvcDogLThweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MsIHRyYW5zZm9ybSAwLjJzO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCA+IHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hlY2tib3gtLWNoYW1wID4gc3Bhbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDNweCAxMXB4IDNweCAxcHg7XG4gIGJvcmRlcjogc29saWQgMnB4O1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYmFja2dyb3VuZC1jb2xvciAwLjJzO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCA+IHNwYW46OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzcHg7XG4gIGxlZnQ6IDFweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogNXB4O1xuICBib3JkZXI6IHNvbGlkIDJweCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHgsIDRweCksIHJvdGF0ZSgtNDUgZGVnKTtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGVja2JveC0tY2hhbXAgPiBpbnB1dDpjaGVja2VkLCAuaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCA+IGlucHV0OmluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjIwMEVFO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCA+IGlucHV0OmNoZWNrZWQgKyBzcGFuOjpiZWZvcmUsIC5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hlY2tib3gtLWNoYW1wID4gaW5wdXQ6aW5kZXRlcm1pbmF0ZSArIHNwYW46OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzYyMDBFRTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBFRTtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGVja2JveC0tY2hhbXAgPiBpbnB1dDpjaGVja2VkICsgc3Bhbjo6YWZ0ZXIsIC5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hlY2tib3gtLWNoYW1wID4gaW5wdXQ6aW5kZXRlcm1pbmF0ZSArIHNwYW46OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjIwMEVFO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCA+IGlucHV0OmluZGV0ZXJtaW5hdGUgKyBzcGFuOjphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg0cHgsIDNweCk7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hlY2tib3gtLWNoYW1wOmhvdmVyID4gaW5wdXQge1xuICBvcGFjaXR5OiAwLjA0O1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCA+IGlucHV0OmZvY3VzIHtcbiAgb3BhY2l0eTogMC4xMjtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGVja2JveC0tY2hhbXA6aG92ZXIgPiBpbnB1dDpmb2N1cyB7XG4gIG9wYWNpdHk6IDAuMTY7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hlY2tib3gtLWNoYW1wID4gaW5wdXQ6YWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzLCBvcGFjaXR5IDBzO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoZWNrYm94LS1jaGFtcCA+IGlucHV0OmFjdGl2ZSArIHNwYW46OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogIzYyMDBFRTtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGVja2JveC0tY2hhbXAgPiBpbnB1dDpjaGVja2VkOmFjdGl2ZSArIHNwYW46OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cblxuLmdlbnJlIGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGxlIHByb2pldFxuKiovXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gw4l0YXBlIDIgW01vbiBwcm9maWxdIChNb2JpbGUgRmlyc3QpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQmFzZSBkw6ljaW1hbGVcbiAqIEhpw6lyYXJjaGllIHJlc3BvbnNpdmVcbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5pbnNjcmlwdGlvbi0tc2VjdGlvbiB7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICB9XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCB7XG4gICAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xuICB9XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBpbnB1dCwgLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCA+IHNlbGVjdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiAxNXB4IDEzcHggMTVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY2FyZXQtY29sb3I6ICM2MjAwRUU7XG4gIHRyYW5zaXRpb246IGJvcmRlciAwLjJzLCBib3gtc2hhZG93IDAuMnM7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBzZWxlY3Qge1xuICBoZWlnaHQ6IDU2cHg7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBpbnB1dCArIGxhYmVsLCAuaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoYW1wID4gc2VsZWN0ICsgbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gIGN1cnNvcjogdGV4dDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycywgZm9udC1zaXplIDAuMnMsIGxpbmUtaGVpZ2h0IDAuMnM7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBpbnB1dCArIGxhYmVsOjpiZWZvcmUsIC5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBpbnB1dCArIGxhYmVsOjphZnRlciwgLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCA+IHNlbGVjdCArIGxhYmVsOjpiZWZvcmUsIC5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBzZWxlY3QgKyBsYWJlbDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoYW1wID4gaW5wdXQgKyBsYWJlbDo6YmVmb3JlLCAuaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoYW1wID4gc2VsZWN0ICsgbGFiZWw6OmJlZm9yZSB7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHggMDtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCA+IGlucHV0ICsgbGFiZWw6OmFmdGVyLCAuaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoYW1wID4gc2VsZWN0ICsgbGFiZWw6OmFmdGVyIHtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tbGVmdDogNHB4O1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMCA0cHg7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXA6aG92ZXIgPiBpbnB1dCwgLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcDpob3ZlciA+IHNlbGVjdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXA6aG92ZXIgPiBpbnB1dCArIGxhYmVsOjpiZWZvcmUsIC5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXA6aG92ZXIgPiBpbnB1dCArIGxhYmVsOjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXA6aG92ZXIgPiBpbnB1dDpub3QoOmZvY3VzKTpwbGFjZWhvbGRlci1zaG93biB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCA+IGlucHV0Om5vdCg6Zm9jdXMpOnBsYWNlaG9sZGVyLXNob3duIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBpbnB1dDpub3QoOmZvY3VzKTpwbGFjZWhvbGRlci1zaG93biArIGxhYmVsIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogNjhweDtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCA+IGlucHV0Om5vdCg6Zm9jdXMpOnBsYWNlaG9sZGVyLXNob3duICsgbGFiZWw6OmJlZm9yZSwgLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCA+IGlucHV0Om5vdCg6Zm9jdXMpOnBsYWNlaG9sZGVyLXNob3duICsgbGFiZWw6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBpbnB1dDpmb2N1cywgLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCA+IHNlbGVjdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzYyMDBFRTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDFweCAwLCBpbnNldCAtMXB4IDAsIGluc2V0IDAgLTFweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmluc2NyaXB0aW9uLS1zZWN0aW9uLS1jaGFtcCA+IGlucHV0OmZvY3VzICsgbGFiZWwsIC5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBzZWxlY3Q6Zm9jdXMgKyBsYWJlbCB7XG4gIGNvbG9yOiAjNjIwMEVFO1xufVxuXG4uaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoYW1wID4gaW5wdXQ6Zm9jdXMgKyBsYWJlbDo6YmVmb3JlLCAuaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoYW1wID4gaW5wdXQ6Zm9jdXMgKyBsYWJlbDo6YWZ0ZXIsIC5pbnNjcmlwdGlvbi0tc2VjdGlvbi0tY2hhbXAgPiBzZWxlY3Q6Zm9jdXMgKyBsYWJlbDo6YmVmb3JlLCAuaW5zY3JpcHRpb24tLXNlY3Rpb24tLWNoYW1wID4gc2VsZWN0OmZvY3VzICsgbGFiZWw6OmFmdGVyIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHg7XG59XG5cbi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGxlIHByb2pldFxuKiovXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gw4l0YXBlIDEgW01vbiBnZW5yZV0gKE1vYmlsZSBGaXJzdClcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCYXNlIGTDqWNpbWFsZVxuICogSGnDqXJhcmNoaWUgcmVzcG9uc2l2ZVxuICovXG4uaW5zY3JpcHRpb24tLWJvdXRvbkluc2NyaXJlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDMwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIGhlaWdodDogMzZweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MjAwRUU7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnM7XG59XG5cbi5pbnNjcmlwdGlvbi0tYm91dG9uSW5zY3JpcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG59XG5cbi5pbnNjcmlwdGlvbi0tYm91dG9uSW5zY3JpcmU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDUwJTtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXMsIHRyYW5zZm9ybSAwLjVzO1xufVxuXG4uaW5zY3JpcHRpb24tLWJvdXRvbkluc2NyaXJlOmhvdmVyLCAuaW5zY3JpcHRpb24tLWJvdXRvbkluc2NyaXJlOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLmluc2NyaXB0aW9uLS1ib3V0b25JbnNjcmlyZTpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wODtcbn1cblxuLmluc2NyaXB0aW9uLS1ib3V0b25JbnNjcmlyZTpmb2N1czo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4yNDtcbn1cblxuLmluc2NyaXB0aW9uLS1ib3V0b25JbnNjcmlyZTpob3Zlcjpmb2N1czo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4uaW5zY3JpcHRpb24tLWJvdXRvbkluc2NyaXJlOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLmluc2NyaXB0aW9uLS1ib3V0b25JbnNjcmlyZTphY3RpdmU6OmFmdGVyIHtcbiAgb3BhY2l0eTogMC4zMjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcztcbn1cblxuLmluc2NyaXB0aW9uLS1ib3V0b25JbnNjcmlyZTpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjdXJzb3I6IGluaXRpYWw7XG59XG5cbi5pbnNjcmlwdGlvbi0tYm91dG9uSW5zY3JpcmU6ZGlzYWJsZWQ6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5pbnNjcmlwdGlvbi0tYm91dG9uSW5zY3JpcmU6ZGlzYWJsZWQ6OmFmdGVyIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmluc2NyaXB0aW9uLS1ib3V0b25JbnNjcmlyZS0tY29udGVuZXVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwcHg7XG59XG5cbi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGxlIHByb2pldFxuKiovXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gUGllZCBkZSBwYWdlIChNb2JpbGUgRmlyc3QpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQmFzZSBkw6ljaW1hbGVcbiAqIEhpw6lyYXJjaGllIHJlc3BvbnNpdmVcbiAqL1xuZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcbiAgcGFkZGluZzogMjBweCAyMHB4IDMwcHggMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKioqIEJhc2UgKioqL1xuLyoqXG4gKiBAYXV0aG9yIFByw6lub20gTm9tIGNvdXJyaWVsXG4gKiBAdG9kbyBBREFQVEVSIGNlIGZpY2hpZXIgc2Vsb24gbGUgcHJvamV0XG4qKi9cbi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRBQkxFIERFUyBNQVRJw4hSRVMgLSBFbiB0w6p0ZSAoTW9iaWxlIEZpcnN0KVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJhc2UgZMOpY2ltYWxlXG4gKiBIacOpcmFyY2hpZSByZXNwb25zaXZlXG4gKi9cbioge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG5tYWluIHtcbiAgbWFyZ2luOiAxNXB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDAwcHgpIHtcbiAgbWFpbiB7XG4gICAgbWFyZ2luOiA1JTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIG1haW4ge1xuICAgIHdpZHRoOiAxMDAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5jYWNoZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5pbnNjcmlwdGlvbi0tZXJyZXVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IDEwcHggMCAxMHB4IDA7XG4gIHdpZHRoOiAyNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya3JlZDtcbn1cblxuLmluc2NyaXB0aW9uLS1lcnJldXIgdWwge1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi5pbnNjcmlwdGlvbi0tZXJyZXVyLS10ZXh0ZSB7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5pbnNjcmlwdGlvbi0tcmV1c3NpIC5pY29uZSB7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbn1cblxuLmljb25lIHtcbiAgaGVpZ2h0OiA0NHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4vKipcbiAqIEBhdXRob3IgUHLDqW5vbSBOb20gY291cnJpZWxcbiAqIEB0b2RvIEFEQVBURVIgY2UgZmljaGllciBzZWxvbiBsZSBwcm9qZXRcbioqL1xuLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVEFCTEUgREVTIE1BVEnDiFJFUyAtIFR5cG9ncmFwaGllIHJlc3BvbnNpdmUgKE1vYmlsZSBGaXJzdClcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCYXNlIGTDqWNpbWFsZVxuICogSGnDqXJhcmNoaWUgcmVzcG9uc2l2ZVxuICovXG4vKiogQmFzZSBkw6ljaW1hbGUgKiovXG5odG1sIHtcbiAgZm9udC1zaXplOiA2Mi41JTtcbn1cblxuYm9keSB7XG4gIC8qIDE2cHggcG91ciB0b3V0ZXMgbGVzIGxhcmdldXJzIGQnw6ljcmFuICovXG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIC8qIGZhY3RldXIgbXVsdGlwbGljYXRldXIgZGUgbGEgdGFpbGxlIGRlIGxhIHBvbGljZSAxLjM3NXgxNiA9IDIyICovXG4gIGxpbmUtaGVpZ2h0OiAxLjM3NTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIGJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICBib2R5IHtcbiAgICBsaW5lLWhlaWdodDogMS43NTtcbiAgfVxufVxuXG4vKiogSGnDqXJhcmNoaWUgcmVzcG9uc2l2ZSAqKi9cbi8qICBwbHVzIHByb2NoZSA9IHBsdXMgcGV0aXQgICYgIHBsdXMgbG9pbiA9IHBsdXMgZ3JhbmQgKi9cbi8qIFRJVFJFUyBOSVZFQVUgMSAqL1xuaDEsXG4uaDEge1xuICAvKiA9IDMycHggKi9cbiAgZm9udC1zaXplOiAzMnB4O1xuICBmb250LXNpemU6IDMuMnJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIGgxLFxuICAuaDEge1xuICAgIC8qID0gNDBweCAqL1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBmb250LXNpemU6IDRyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICBoMSxcbiAgLmgxIHtcbiAgICAvKiA9IDQ4cHggKi9cbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgZm9udC1zaXplOiA0LjhyZW07XG4gIH1cbn1cblxuLyogVElUUkVTIE5JVkVBVSAyICovXG5oMixcbi5oMiB7XG4gIC8qID0gMjRweCAqL1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgaDIsXG4gIC5oMiB7XG4gICAgLyogPSAzMnB4ICovXG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgaDIsXG4gIC5oMiB7XG4gICAgLyogPSAzNnB4ICovXG4gICAgZm9udC1zaXplOiAzNnB4O1xuICAgIGZvbnQtc2l6ZTogMy42cmVtO1xuICB9XG59XG5cbi8qIFRJVFJFUyBOSVZFQVUgMyAqL1xuaDMsXG4uaDMge1xuICAvKiA9IDE4cHggKi9cbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXNpemU6IDEuOHJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIGgzLFxuICAuaDMge1xuICAgIC8qID0gMjRweCAqL1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIGgzLFxuICAuaDMge1xuICAgIC8qID0gMzBweCAqL1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXNpemU6IDNyZW07XG4gIH1cbn1cblxuLyogVElUUkVTIE5JVkVBVSA0ICovXG5oNCxcbi5oNCB7XG4gIC8qID0gMTZweCAqL1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgaDQsXG4gIC5oNCB7XG4gICAgLyogPSAxOHB4ICovXG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgaDQsXG4gIC5oNCB7XG4gICAgLyogPSAyMnB4ICovXG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICB9XG59XG5cbi5pdGFsaXF1ZSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqKiBNb2R1bGVzICoqKi9cbi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGxlIHByb2pldFxuKiovXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gw4l0YXBlcyAoTW9iaWxlIEZpcnN0KVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJhc2UgZMOpY2ltYWxlXG4gKiBIacOpcmFyY2hpZSByZXNwb25zaXZlXG4gKi9cbi5uby1qcyAuaW5zY3JpcHRpb24tLWV0YXBlLS0xIHtcbiAgZGlzcGxheTogaW5oZXJpdDtcbn1cblxuLm5vLWpzIC5pbnNjcmlwdGlvbi0tZXRhcGUtLTIge1xuICBkaXNwbGF5OiBpbmhlcml0O1xufVxuXG4ubm8tanMgLmluc2NyaXB0aW9uLS1ldGFwZS0tMyB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG59XG5cbi5uby1qcyAuaW5zY3JpcHRpb24tLWJvdXRvbkNvbnRpbnVlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbiB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmluc2NyaXB0aW9uLS1ldGFwZS0tdGl0cmUge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uaW5zY3JpcHRpb24tLWJvdXRvbkNvbnRpbnVlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIGhlaWdodDogMzZweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzYyMDBFRTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzO1xufVxuXG4uaW5zY3JpcHRpb24tLWJvdXRvbkNvbnRpbnVlcjpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBpbml0aWFsO1xufVxuXG4vKipcbiAqIEBhdXRob3IgUHLDqW5vbSBOb20gY291cnJpZWxcbiAqIEB0b2RvIEFEQVBURVIgY2UgZmljaGllciBzZWxvbiBsZSBwcm9qZXRcbioqL1xuLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVEFCTEUgREVTIE1BVEnDiFJFUyAtIMOJdGFwZXMgKE1vYmlsZSBGaXJzdClcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCYXNlIGTDqWNpbWFsZVxuICogSGnDqXJhcmNoaWUgcmVzcG9uc2l2ZVxuICovXG4uaW5kaWNhdGV1ckV0YXBlcyB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJvcmRlci1zcGFjaW5nOiA1cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uaW5kaWNhdGV1ckV0YXBlcy0tbnVtZXJvRXRhcGUge1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZXRhcGVFbkNvdXJzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYyMDBFRTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5ldGFwZVJlbXBsaWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBBRjU1O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLyoqKiBOb3JtYWxpemUgKioqL1xuLyohIG5vcm1hbGl6ZS5zY3NzIHYwLjEuMCB8IE1JVCBMaWNlbnNlIHwgYmFzZWQgb24gZ2l0LmlvL25vcm1hbGl6ZSAqL1xuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8qKlxuICogQGF1dGhvciBHYWJyaWVsIFZlcnJldCA8MTczODEyN0BldHUuY2VnZXAtc3RlLWZveS5xYy5jYT5cbioqL1xuXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLVxuICogVEFCTEUgREVTIE1BVEnDiFJFU1xuICogLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCSUJMSU9USMOIUVVFUyAoZGFucyBsZSBkb3NzaWVyIGJvd2VyX2NvbXBvbmVudHMpXG4gKiogTm9ybWFsaXplXG4gKiogU3VzeVxuICogVVRJTElUQUlSRVNcbiAqKiB2YXJpYWJsZXNcbiovXG5cbi8qKiogVXRpbGl0YWlyZXMgKioqL1xuQGltcG9ydCAndXRpbGl0YWlyZXMvX3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlsaXRhaXJlcy9fbWl4aW5zJztcblxuLyoqKiBHcmlsbGUgKioqL1xuQGltcG9ydCAnZ3JpbGxlL19lblRldGUnO1xuQGltcG9ydCAnZ3JpbGxlL19tb25HZW5yZSc7XG5AaW1wb3J0ICdncmlsbGUvX21vblByb2ZpbCc7XG5AaW1wb3J0ICdncmlsbGUvX21vbkNvbXB0ZSc7XG5AaW1wb3J0ICdncmlsbGUvX3BpZWREZVBhZ2UnO1xuXG4vKioqIEJhc2UgKioqL1xuQGltcG9ydCAnYmFzZS9fZ2VuZXJhbCc7XG5AaW1wb3J0ICdiYXNlL190eXBvJztcblxuLyoqKiBNb2R1bGVzICoqKi9cbkBpbXBvcnQgJ21vZHVsZXMvX2V0YXBlcyc7XG5AaW1wb3J0ICdtb2R1bGVzL19pbmRpY2F0ZXVyRXRhcGVzJztcblxuLyoqKiBOb3JtYWxpemUgKioqL1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzJztcblxuIiwiLyoqXG4gKiBAYXV0aG9yIFByw6lub20gTm9tIGNvdXJyaWVsXG4gKiBAdG9kbyBBREFQVEVSIGNlIGZpY2hpZXIgc2Vsb24gY29uY2VwdFxuICogLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvbGljZXMgZGUgY2FyYWN0w6hyZXNcbiAqIFBhbGV0dGUgZGUgY291bGV1cnNcbiAqIFBvaW50cyBkZSBydXB0dXJlXG4gKiovXG5cbi8qKiBQb2xpY2VzIGRlIGNhcmFjdMOocmVzICoqL1xuLypcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJOb20gUG9saWNlXCI7XG4gICAgICAgICAgc3JjOiBcdHVybCgnTm9tLVBvbGljZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIFx0XHR1cmwoJ05vbS1Qb2xpY2Uud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgXHRcdHVybCgnTm9tLVBvbGljZS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG59XG4qL1xuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86NDAwLDUwMCZkaXNwbGF5PXN3YXAnKTtcbiRwb2xpY2VUaXRyZXM6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XG4vLyRwb2xpY2VDb3JwczogVGltZXMsIHNlcmlmO1xuXG4vKiogUGFsZXR0ZSBkZSBjb3VsZXVycyAqKi9cbi8vIEF1IGJlc29pbiB1dGlsaXNlciBodHRwOi8vY2hpci5hZy9wcm9qZWN0cy9uYW1lLXRoYXQtY29sb3IgcG91ciBub21tZXIgbGVzIGNvdWxldXJzXG5cbiRibGFuY0Jpc2N1aXRFdENyZW1lOiAjRjVGNUY1O1xuJG5vaXI6ICMwMDA7XG4kYmxhbmM6ICNmZmY7XG4kbWF1dmU6ICM2MjAwRUU7XG4kdmVydDogIzAwQUY1NTtcblxuLy8kZG9taW5hbnRlOiAkYmxldU1pbnVpdDtcbi8vJHNlY29uZGFpcmU6ICR2ZXJ0TGltZTtcbiR0ZXh0ZTokbm9pcjtcbiR0ZXh0ZUludmVyc2U6JGJsYW5jO1xuXG5cbi8qKiBQb2ludHMgZGUgcnVwdHVyZSAqKi9cbiR0YWJsZXR0ZVBvcnRyYWl0IDogNjAwcHg7XG4vKiB0YWJsZXQsIGxhbmRzY2FwZSBpUGFkLCBsby1yZXMgbGFwdG9wcyBhbmRzIGRlc2t0b3BzICovXG4kZGVza3RvcCA6IDEwMDBweDtcbi8qIGhpLXJlcyBsYXB0b3BzIGFuZCBkZXNrdG9wcyAqLyIsIi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIGF1IGJlc29pblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVEFCTEUgREVTIE1BVEnDiFJFUyAtIE1JWElOU1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogYmFzZSAoQm94U2l6aW5nLCBDbGVhcmZpeClcbiAqIGFjY2Vzc2liaWxpdMOpXG4gKiB0eXBvZ3JhcGhpZVxuICogQHRvZG8gUGVyc29ubmFsaXNlciBhdSBiZXNvaW5cbiAqL1xuXG5cblxuLyoqKioqKioqIFV0aWxpdGFpcmVzIGRlIGJhc2UgKEJveFNpemluZywgQ2xlYXJmaXgpICoqKioqKioqKi9cbi8qIEJveFNpemluZyAqL1xuQG1peGluIGJvcmRlci1ib3gtc2l6aW5ne1xuICAgICoge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbn1cblxuLyogQ2xlYXJmaXg6IHBvdXIgY29udHJlciBsZSBwcm9ibMOobWUgZGVzIGVuZmFudHMgZmxvdHRhbnRzKi9cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG4uY2Z7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi8qKioqKioqKiBVdGlsaXRhaXJlcyBwb3VyIGFjY2Vzc2liaWxpdMOpICoqKioqKioqKi9cbi8vIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW5yZWFkZXJzOlxuLy8gaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuQG1peGluIHZpc3VhbGx5aGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOiAxcHg7XG5cbiAgICAvLyBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnQgdG8gYmUgZm9jdXNhYmxlXG4gICAgLy8gd2hlbiBuYXZpZ2F0ZWQgdG8gdmlhIHRoZSBrZXlib2FyZDogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICAgICYuZm9jdXNhYmxlOmFjdGl2ZSxcbiAgICAmLmZvY3VzYWJsZTpmb2N1cyB7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuLnZpc3VhbGx5aGlkZGVuLFxuLnNjcmVlbi1yZWFkZXItb25seXtcbiAgICBAaW5jbHVkZSB2aXN1YWxseWhpZGRlbjtcbn1cblxuXG5cbi8qKioqKioqKiBVdGlsaXRhaXJlcyBwb3VyIHR5cG9ncmFwaGllICoqKioqKioqKi9cbi8vIEZvbmN0aW9uIHBvdXIgY29udmVydGlyIHVuZSB2YWxldXIgZGUgZm9udC1zaXplIGVuIHBpeGVscyDDoCBzb24gw6lxdWl2YWxlbnQgcmVtXG5AZnVuY3Rpb24gY2FsY3VsYXRlUmVtKCRzaXplKSB7XG4gICAgJHJlbVNpemU6ICRzaXplIC8gMTBweDtcbiAgICBAcmV0dXJuICN7JHJlbVNpemV9cmVtO1xufVxuLy8gTWl4aW4gcXVpIGluY2x1cyBsYSBzb2x1dGlvbiBkZSByZXBsaSBlbiBwaXhlbCBzdWl2aSBwYXIgbGEgdmFsZXVyIGNhbGN1bMOpZSBlbiByZW1cbkBtaXhpbiBmb250U2l6ZSgkc2l6ZSkge1xuICAgIGZvbnQtc2l6ZTogJHNpemU7XG4gICAgZm9udC1zaXplOiBjYWxjdWxhdGVSZW0oJHNpemUpO1xufVxuXG4vL1BvdXIgVVRJTElTRVI6XG4vL0BpbmNsdWRlIGZvbnRTaXplKDE1cHgpO1xuXG5cblxuLyogVXRpbGl0YWlyZSBkZSBtaXNlIGVuIHBhZ2UgKi9cbkBtaXhpbiBoYXJkUmVzZXR7XG4gICAgbWFyZ2luOjA7XG4gICAgcGFkZGluZzowO1xufSIsIi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGxlIHByb2pldFxuKiovXG5cbi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRBQkxFIERFUyBNQVRJw4hSRVMgLSBFbiB0w6p0ZSAoTW9iaWxlIEZpcnN0KVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJhc2UgZMOpY2ltYWxlXG4gKiBIacOpcmFyY2hpZSByZXNwb25zaXZlXG4gKi9cblxuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsYW5jQmlzY3VpdEV0Q3JlbWU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGhlaWdodDogNjVweDtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwwLDAsMC41MCk7XG4gIEBtZWRpYShtaW4td2lkdGg6ICR0YWJsZXR0ZVBvcnRyYWl0KSB7XG4gICAgaGVpZ2h0OiA4NXB4O1xuICB9XG4gIEBtZWRpYShtaW4td2lkdGg6ICRkZXNrdG9wKSB7XG4gICAgaGVpZ2h0OiA4NXB4O1xuICB9XG5cbiAgJiBoMSB7XG4gICAgbWFyZ2luOiAwO1xuICAgICYgaW1nIHtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICB9XG4gIH1cblxuICAmIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmIC5jb250ZW51IHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn0iLCIvKipcbiAqIEBhdXRob3IgUHLDqW5vbSBOb20gY291cnJpZWxcbiAqIEB0b2RvIEFEQVBURVIgY2UgZmljaGllciBzZWxvbiBsZSBwcm9qZXRcbioqL1xuXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gw4l0YXBlIDEgW01vbiBnZW5yZV0gKE1vYmlsZSBGaXJzdClcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCYXNlIGTDqWNpbWFsZVxuICogSGnDqXJhcmNoaWUgcmVzcG9uc2l2ZVxuICovXG5cbi5pbnNjcmlwdGlvbiB7XG4gICYtLXNlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgJi0tbGVnZW5kZSB7XG4gICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICB9XG4gICAgJi0tcmFkaW8ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgJi0tY2hhbXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAmPmlucHV0IHtcbiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcywgdHJhbnNmb3JtIDAuMnM7XG4gICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5OCwgMCwgMjM4KTtcbiAgICAgICAgICAgICYgKyBzcGFuOjpiZWZvcmUge1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYig5OCwgMCwgMjM4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYgKyBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgNXB4KSBzY2FsZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJj5zcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1hcmdpbjogMnB4IDEwcHggMnB4IDA7XG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk4LCAwLCAyMzgpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpIHNjYWxlKDApO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXI+aW5wdXQge1xuICAgICAgICAgIG9wYWNpdHk6IDAuMDQ7XG4gICAgICAgIH1cbiAgICAgICAgJj5pbnB1dDpmb2N1cyB7XG4gICAgICAgICAgb3BhY2l0eTogMC4xMjtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyPmlucHV0OmZvY3VzIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjE2O1xuICAgICAgICB9XG4gICAgICAgICYgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLS1jaGVja2JveCB7XG4gICAgICAmLS1jaGFtcCB7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAmPmlucHV0IHtcbiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzLCB0cmFuc2Zvcm0gMC4ycztcbiAgICAgICAgfVxuICAgICAgICAmPnNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgJj5zcGFuOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgbWFyZ2luOiAzcHggMTFweCAzcHggMXB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMnB4O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYmFja2dyb3VuZC1jb2xvciAwLjJzO1xuICAgICAgICB9XG4gICAgICAgICY+c3Bhbjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICAgIGxlZnQ6IDFweDtcbiAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzcHgsIDRweCksIHJvdGF0ZSgtNDUgZGVnKTtcbiAgICAgICAgfVxuICAgICAgICAmPmlucHV0OmNoZWNrZWQsICY+aW5wdXQ6aW5kZXRlcm1pbmF0ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdXZlO1xuICAgICAgICB9XG4gICAgICAgICY+aW5wdXQ6Y2hlY2tlZCArIHNwYW46OmJlZm9yZSwgJj5pbnB1dDppbmRldGVybWluYXRlICsgc3Bhbjo6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRtYXV2ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF1dmU7XG4gICAgICAgIH1cbiAgICAgICAgJj5pbnB1dDpjaGVja2VkICsgc3Bhbjo6YWZ0ZXIsICY+aW5wdXQ6aW5kZXRlcm1pbmF0ZSArIHNwYW46OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRtYXV2ZTtcbiAgICAgICAgfVxuICAgICAgICAmPmlucHV0OmluZGV0ZXJtaW5hdGUgKyBzcGFuOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNHB4LCAzcHgpO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIgPiBpbnB1dCB7XG4gICAgICAgICAgb3BhY2l0eTogMC4wNDtcbiAgICAgICAgfVxuICAgICAgICAmPmlucHV0OmZvY3VzIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjEyO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXI+aW5wdXQ6Zm9jdXMge1xuICAgICAgICAgIG9wYWNpdHk6IDAuMTY7XG4gICAgICAgIH1cbiAgICAgICAgJj5pbnB1dDphY3RpdmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMHMsIG9wYWNpdHkgMHM7XG4gICAgICAgIH1cbiAgICAgICAgJj5pbnB1dDphY3RpdmUgKyBzcGFuOjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdXZlO1xuICAgICAgICB9XG4gICAgICAgICY+aW5wdXQ6Y2hlY2tlZDphY3RpdmUrIHNwYW46OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmdlbnJlIHtcbiAgJiBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbn0iLCIvKipcbiAqIEBhdXRob3IgUHLDqW5vbSBOb20gY291cnJpZWxcbiAqIEB0b2RvIEFEQVBURVIgY2UgZmljaGllciBzZWxvbiBsZSBwcm9qZXRcbioqL1xuXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gw4l0YXBlIDIgW01vbiBwcm9maWxdIChNb2JpbGUgRmlyc3QpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQmFzZSBkw6ljaW1hbGVcbiAqIEhpw6lyYXJjaGllIHJlc3BvbnNpdmVcbiAqL1xuXG4uaW5zY3JpcHRpb24ge1xuICAmLS1zZWN0aW9uIHtcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAkdGFibGV0dGVQb3J0cmFpdCkge1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgfVxuICAgICYtLWNoYW1wIHtcbiAgICAgIEBtZWRpYShtYXgtd2lkdGg6ICR0YWJsZXR0ZVBvcnRyYWl0KSB7XG4gICAgICAgIG1hcmdpbjogMTBweCAwIDEwcHggMDtcbiAgICAgIH1cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgJiA+IGlucHV0LCAmID4gc2VsZWN0IHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMTNweCAxNXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBjYXJldC1jb2xvcjogJG1hdXZlO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycywgYm94LXNoYWRvdyAwLjJzO1xuICAgICAgfVxuXG4gICAgICAmID4gc2VsZWN0IHtcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgfVxuXG4gICAgICAmID4gaW5wdXQgKyBsYWJlbCwgJiA+IHNlbGVjdCArIGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMsIGZvbnQtc2l6ZSAwLjJzLCBsaW5lLWhlaWdodCAwLjJzO1xuXG4gICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgICBtaW4td2lkdGg6IDEwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMsIGJveC1zaGFkb3cgMC4ycztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHggMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDRweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmhvdmVyID4gaW5wdXQsICY6aG92ZXIgPiBzZWxlY3Qge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyID4gaW5wdXQgKyBsYWJlbDo6YmVmb3JlLCAmOmhvdmVyID4gaW5wdXQgKyBsYWJlbDo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyID4gaW5wdXQ6bm90KDpmb2N1cyk6cGxhY2Vob2xkZXItc2hvd24ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gICAgICB9XG5cbiAgICAgICYgPiBpbnB1dDpub3QoOmZvY3VzKTpwbGFjZWhvbGRlci1zaG93biB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgfVxuXG4gICAgICAmID4gaW5wdXQ6bm90KDpmb2N1cyk6cGxhY2Vob2xkZXItc2hvd24gKyBsYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDY4cHg7XG4gICAgICB9XG5cbiAgICAgICYgPiBpbnB1dDpub3QoOmZvY3VzKTpwbGFjZWhvbGRlci1zaG93biArIGxhYmVsOjpiZWZvcmUsICYgPiBpbnB1dDpub3QoOmZvY3VzKTpwbGFjZWhvbGRlci1zaG93biArIGxhYmVsOjphZnRlciB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAmID4gaW5wdXQ6Zm9jdXMsICYgPiBzZWxlY3Q6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRtYXV2ZTtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDFweCAwLCBpbnNldCAtMXB4IDAsIGluc2V0IDAgLTFweDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAmICsgbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkbWF1dmU7XG5cbiAgICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGxlIHByb2pldFxuKiovXG5cbi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRBQkxFIERFUyBNQVRJw4hSRVMgLSDDiXRhcGUgMSBbTW9uIGdlbnJlXSAoTW9iaWxlIEZpcnN0KVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJhc2UgZMOpY2ltYWxlXG4gKiBIacOpcmFyY2hpZSByZXNwb25zaXZlXG4gKi9cblxuLmluc2NyaXB0aW9uIHtcbiAgJi0tYm91dG9uSW5zY3JpcmUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDMwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIG1pbi13aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJGJsYW5jO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXV2ZTtcbiAgICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnM7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhbmM7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBwYWRkaW5nOiA1MCU7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFuYztcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXMsIHRyYW5zZm9ybSAwLjVzO1xuICAgIH1cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgfVxuICAgICY6aG92ZXI6OmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAwLjA4O1xuICAgIH1cbiAgICAmOmZvY3VzOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMC4yNDtcbiAgICB9XG4gICAgJjpob3Zlcjpmb2N1czo6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IDAuMztcbiAgICB9XG4gICAgJjphY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIH1cbiAgICAmOmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMC4zMjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDApO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzO1xuICAgIH1cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBjdXJzb3I6IGluaXRpYWw7XG4gICAgfVxuICAgICY6ZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICAmOmRpc2FibGVkOjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICYtLWNvbnRlbmV1ciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgfVxuICB9XG59IiwiLyoqXG4gKiBAYXV0aG9yIFByw6lub20gTm9tIGNvdXJyaWVsXG4gKiBAdG9kbyBBREFQVEVSIGNlIGZpY2hpZXIgc2Vsb24gbGUgcHJvamV0XG4qKi9cblxuLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVEFCTEUgREVTIE1BVEnDiFJFUyAtIFBpZWQgZGUgcGFnZSAoTW9iaWxlIEZpcnN0KVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJhc2UgZMOpY2ltYWxlXG4gKiBIacOpcmFyY2hpZSByZXNwb25zaXZlXG4gKi9cblxuZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsYW5jQmlzY3VpdEV0Q3JlbWU7XG4gIHBhZGRpbmc6IDIwcHggMjBweCAzMHB4IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn0iLCIvKipcbiAqIEBhdXRob3IgUHLDqW5vbSBOb20gY291cnJpZWxcbiAqIEB0b2RvIEFEQVBURVIgY2UgZmljaGllciBzZWxvbiBsZSBwcm9qZXRcbioqL1xuXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gRW4gdMOqdGUgKE1vYmlsZSBGaXJzdClcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCYXNlIGTDqWNpbWFsZVxuICogSGnDqXJhcmNoaWUgcmVzcG9uc2l2ZVxuICovXG5cbioge1xuICBmb250LWZhbWlseTogJHBvbGljZVRpdHJlcztcbiAgbWFyZ2luOiAwO1xufVxuXG5tYWluIHtcbiAgbWFyZ2luOiAxNXB4O1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHRhYmxldHRlUG9ydHJhaXQpIHtcbiAgICBAbWVkaWEobWF4LXdpZHRoOiAkZGVza3RvcCkge1xuICAgICAgbWFyZ2luOiA1JTtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRkZXNrdG9wKSB7XG4gICAgd2lkdGg6IDEwMDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLmNhY2hlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmluc2NyaXB0aW9uIHtcbiAgJi0tZXJyZXVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrcmVkO1xuICAgICYgdWwge1xuICAgICAgbWFyZ2luOiAxMHB4O1xuICAgIH1cbiAgICAmLS10ZXh0ZSB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cbiAgfVxuICAmLS1yZXVzc2kge1xuICAgICYgLmljb25lIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICB9XG4gIH1cbn1cblxuLmljb25lIHtcbiAgaGVpZ2h0OiA0NHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufSIsIi8qKlxuICogQGF1dGhvciBQcsOpbm9tIE5vbSBjb3VycmllbFxuICogQHRvZG8gQURBUFRFUiBjZSBmaWNoaWVyIHNlbG9uIGxlIHByb2pldFxuKiovXG5cbi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRBQkxFIERFUyBNQVRJw4hSRVMgLSBUeXBvZ3JhcGhpZSByZXNwb25zaXZlIChNb2JpbGUgRmlyc3QpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQmFzZSBkw6ljaW1hbGVcbiAqIEhpw6lyYXJjaGllIHJlc3BvbnNpdmVcbiAqL1xuXG5cblxuLyoqIEJhc2UgZMOpY2ltYWxlICoqL1xuaHRtbHtcbiAgZm9udC1zaXplOiA2Mi41JTtcbn1cbmJvZHkge1xuICAvKiAxNnB4IHBvdXIgdG91dGVzIGxlcyBsYXJnZXVycyBkJ8OpY3JhbiAqL1xuICBAaW5jbHVkZSBmb250U2l6ZSgxNnB4KTtcbiAgLyogZmFjdGV1ciBtdWx0aXBsaWNhdGV1ciBkZSBsYSB0YWlsbGUgZGUgbGEgcG9saWNlIDEuMzc1eDE2ID0gMjIgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMzc1O1xufVxuQG1lZGlhIChtaW4td2lkdGg6ICR0YWJsZXR0ZVBvcnRyYWl0KSB7XG4gIGJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAkZGVza3RvcCkge1xuICBib2R5IHtcbiAgICBsaW5lLWhlaWdodDogMS43NTtcbiAgfVxufVxuXG5cblxuLyoqIEhpw6lyYXJjaGllIHJlc3BvbnNpdmUgKiovXG4vKiAgcGx1cyBwcm9jaGUgPSBwbHVzIHBldGl0ICAmICBwbHVzIGxvaW4gPSBwbHVzIGdyYW5kICovXG5cbi8qIFRJVFJFUyBOSVZFQVUgMSAqL1xuaDEsXG4uaDEgeyAvKiA9IDMycHggKi9cbiAgQGluY2x1ZGUgZm9udFNpemUoMzJweCk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogJHRhYmxldHRlUG9ydHJhaXQpIHtcbiAgaDEsXG4gIC5oMSB7IC8qID0gNDBweCAqL1xuICAgIEBpbmNsdWRlIGZvbnRTaXplKDQwcHgpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogJGRlc2t0b3ApIHtcbiAgaDEsXG4gIC5oMSB7IC8qID0gNDhweCAqL1xuICAgIEBpbmNsdWRlIGZvbnRTaXplKDQ4cHgpO1xuICB9XG59XG5cblxuLyogVElUUkVTIE5JVkVBVSAyICovXG5oMixcbi5oMiB7IC8qID0gMjRweCAqL1xuICBAaW5jbHVkZSBmb250U2l6ZSgyNHB4KTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAkdGFibGV0dGVQb3J0cmFpdCkge1xuICBoMixcbiAgLmgyIHsgLyogPSAzMnB4ICovXG4gICAgQGluY2x1ZGUgZm9udFNpemUoMzJweCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAkZGVza3RvcCkge1xuICBoMixcbiAgLmgyIHsgLyogPSAzNnB4ICovXG4gICAgQGluY2x1ZGUgZm9udFNpemUoMzZweCk7XG4gIH1cbn1cblxuXG4vKiBUSVRSRVMgTklWRUFVIDMgKi9cbmgzLFxuLmgzIHsgLyogPSAxOHB4ICovXG4gIEBpbmNsdWRlIGZvbnRTaXplKDE4cHgpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6ICR0YWJsZXR0ZVBvcnRyYWl0KSB7XG4gIGgzLFxuICAuaDMgeyAgLyogPSAyNHB4ICovXG4gICAgQGluY2x1ZGUgZm9udFNpemUoMjRweCk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAkZGVza3RvcCkge1xuICBoMyxcbiAgLmgzIHsgLyogPSAzMHB4ICovXG4gICAgQGluY2x1ZGUgZm9udFNpemUoMzBweCk7XG4gIH1cbn1cblxuXG4vKiBUSVRSRVMgTklWRUFVIDQgKi9cbmg0LFxuLmg0IHsgLyogPSAxNnB4ICovXG4gIEBpbmNsdWRlIGZvbnRTaXplKDE2cHgpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6ICR0YWJsZXR0ZVBvcnRyYWl0KSB7XG4gIGg0LFxuICAuaDQgeyAvKiA9IDE4cHggKi9cbiAgICBAaW5jbHVkZSBmb250U2l6ZSgxOHB4KTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJGRlc2t0b3ApIHtcbiAgaDQsXG4gIC5oNCB7IC8qID0gMjJweCAqL1xuICAgIEBpbmNsdWRlIGZvbnRTaXplKDIycHgpO1xuICB9XG59XG5cbi5pdGFsaXF1ZSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn0iLCIvKipcbiAqIEBhdXRob3IgUHLDqW5vbSBOb20gY291cnJpZWxcbiAqIEB0b2RvIEFEQVBURVIgY2UgZmljaGllciBzZWxvbiBsZSBwcm9qZXRcbioqL1xuXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gw4l0YXBlcyAoTW9iaWxlIEZpcnN0KVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJhc2UgZMOpY2ltYWxlXG4gKiBIacOpcmFyY2hpZSByZXNwb25zaXZlXG4gKi9cblxuLm5vLWpzIHsgLy9TaSBKYXZhc2NyaXB0IGVzdCBkw6lzYWN0aXbDqVxuICAuaW5zY3JpcHRpb24ge1xuICAgICYtLWV0YXBlIHtcbiAgICAgICYtLTEge1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAmLS0yIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgJi0tMyB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tYm91dG9uQ29udGludWVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5pbnNjcmlwdGlvbi0tc2VjdGlvbiB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmluc2NyaXB0aW9uIHtcbiAgJi0tZXRhcGUge1xuICAgICYtLXRpdHJlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBsaW5lLWhlaWdodDogNTZweDtcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxuICB9XG5cbiAgJi0tYm91dG9uQ29udGludWVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgICBtaW4td2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJG1hdXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzO1xuICAgICY6ZGlzYWJsZWQge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGN1cnNvcjogaW5pdGlhbDtcbiAgICB9XG4gIH1cbn0iLCIvKipcbiAqIEBhdXRob3IgUHLDqW5vbSBOb20gY291cnJpZWxcbiAqIEB0b2RvIEFEQVBURVIgY2UgZmljaGllciBzZWxvbiBsZSBwcm9qZXRcbioqL1xuXG4vKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUQUJMRSBERVMgTUFUScOIUkVTIC0gw4l0YXBlcyAoTW9iaWxlIEZpcnN0KVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJhc2UgZMOpY2ltYWxlXG4gKiBIacOpcmFyY2hpZSByZXNwb25zaXZlXG4gKi9cblxuLmluZGljYXRldXJFdGFwZXMge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBib3JkZXItc3BhY2luZzogNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgJi0tbnVtZXJvRXRhcGUge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJG5vaXI7XG4gIH1cbn1cblxuLmV0YXBlRW5Db3VycyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYXV2ZTtcbiAgY29sb3I6ICR0ZXh0ZUludmVyc2U7XG59XG5cbi5ldGFwZVJlbXBsaWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmVydDtcbiAgY29sb3I6ICR0ZXh0ZUludmVyc2U7XG59IiwiLyohIG5vcm1hbGl6ZS5zY3NzIHYwLjEuMCB8IE1JVCBMaWNlbnNlIHwgYmFzZWQgb24gZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iXX0= */
</pre></body></html>