/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/*
* Hide only visually, but have it available for screen readers: h5bp.com/v
*/
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

/*
* Extends the .visuallyhidden class to allow the element to be focusable
* when navigated to via the keyboard: h5bp.com/p
*/
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

@font-face {
  font-family: 'icons';
  src: url("../fonts/icons/icons.eot?omhkm9");
  src: url("../fonts/icons/icons.eot?omhkm9#iefix") format("embedded-opentype"), url("../fonts/icons/icons.ttf?omhkm9") format("truetype"), url("../fonts/icons/icons.woff?omhkm9") format("woff"), url("../fonts/icons/icons.svg?omhkm9#icons") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icons' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-a-right:before {
  content: "\e900";
}

.icon-a-down:before {
  content: "\e901";
}

.icon-like:before {
  content: "\e902";
}

.icon-instagram:before {
  content: "\e903";
}

.icon-twitter:before {
  content: "\e904";
}

html, body {
  font-family: 'Arial';
  font-size: 100%;
}

body {
  background-color: #fff;
  color: #505050;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  color: #4d4d4d;
  font-family: 'Fauna One';
}

.wrapper {
  display: block;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 20px;
}

a {
  transition: all 0.2s;
}

a:hover {
  text-decoration: none;
  color: #a4dda4;
}

.arrow-down {
  display: block;
  margin-top: 20px;
}

.arrow-down span {
  color: #efb35b;
  font-size: 16px;
}

.btn_more {
  color: #000;
  text-transform: uppercase;
  font-family: 'Spartan';
  font-weight: bold;
  font-size: 20px;
  display: inline-block;
  margin-top: 30px;
  border-bottom: 1px solid #a4dda4;
}

.masthead {
  background: blue;
  padding: 20px 0;
  text-align: center;
  background: url("../images/producto-1.jpeg") center center no-repeat;
  background-size: cover;
  position: relative;
  background-attachment: fixed;
}

.masthead .brdr {
  background: #FFF;
  display: block;
  width: 100%;
  height: 140px;
  position: absolute;
  bottom: 0;
  z-index: 9;
  border-top: 4px solid #a4dda4;
}

.masthead.nosotros {
  padding-bottom: 60px;
  border-bottom: 4px solid #efb35b;
  background: url("../images/banner2.jpeg") bottom center no-repeat;
  background-size: cover;
  background-attachment: fixed;
}

.masthead.nosotros::after {
  content: '';
  display: block;
  width: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #00153f;
  background: linear-gradient(0deg, #00153f 0%, rgba(0, 21, 63, 0.598477) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00153f",endColorstr="#00153f",GradientType=1);
}

.masthead.nosotros .wrapper .content {
  margin-top: 260px;
}

.masthead.nosotros .wrapper .content p {
  margin: 0;
}

.masthead.product {
  height: 800px;
  position: relative;
  background: url("../images/header-bg.jpeg") center center no-repeat;
  background-size: cover;
  background-attachment: fixed;
}

.masthead.product::after {
  content: '';
  display: block;
  width: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #245556;
  background: linear-gradient(180deg, #245556 0%, rgba(36, 85, 86, 0.601278) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#245556",endColorstr="#245556",GradientType=1);
}

.masthead.product .wrapper .img_box {
  max-width: 400px;
  height: auto;
  margin: 0 auto;
  z-index: 9999;
  clear: both;
  position: absolute;
  left: 0;
  right: 0;
}

.masthead.product .wrapper .img_box img {
  width: 100%;
  height: auto;
}

.masthead::after {
  content: '';
  display: block;
  width: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #00153f;
  background: linear-gradient(180deg, #00153f 0%, rgba(0, 21, 63, 0.598477) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00153f",endColorstr="#00153f",GradientType=1);
}

.masthead .wrapper {
  position: relative;
  z-index: 9;
}

.masthead .wrapper .main_nav {
  display: block;
}

.masthead .wrapper .main_nav .logo {
  display: block;
  width: 200px;
  height: auto;
  margin: 0;
}

.masthead .wrapper .main_nav .logo img {
  width: 100%;
  height: auto;
}

.masthead .wrapper .main_nav .btn_menu {
  display: none;
}

.masthead .wrapper .main_nav .menu {
  list-style: none;
  padding: 0;
  margin: 0;
  position: absolute;
  top: 30px;
  right: 10px;
}

.masthead .wrapper .main_nav .menu li {
  display: inline-block;
  margin: 0 8px;
}

.masthead .wrapper .main_nav .menu li a {
  text-transform: uppercase;
  color: #FFF;
  font-size: 13px;
  font-family: 'Spartan';
  font-weight: bold;
}

.masthead .wrapper .content {
  margin-top: 80px;
}

.masthead .wrapper .content .title {
  font-size: 45px;
  font-family: 'Spartan';
  text-transform: uppercase;
  color: #FFF;
  font-weight: 700;
}

.masthead .wrapper .content .title span {
  color: #a4dda4;
}

.masthead .wrapper .content p {
  font-size: 25px;
  color: #FFF;
}

.masthead .wrapper .content p span {
  color: #a4dda4;
}

.masthead .wrapper .img_box {
  max-width: 560px;
  height: auto;
  margin: 0 auto;
  z-index: 9999;
  clear: both;
}

.masthead .wrapper .img_box img {
  width: 100%;
  height: auto;
}

.masthead .wrapper .btn_more {
  color: #FFF;
}

.masthead .wrapper .btn_more:hover {
  color: #eeb262;
}

.features {
  text-align: center;
  padding-bottom: 80px;
}

.features .wrapper .txt {
  margin-bottom: 60px;
}

.features .wrapper .txt h3 {
  font-family: 'Spartan';
  font-size: 20px;
  font-weight: 700;
  text-transform: uppercase;
  margin: 0 0 15px 0;
  color: #000;
}

.features .wrapper .txt h3 span {
  color: #6DA38D;
}

.features .wrapper .txt p {
  font-size: 15px;
}

.features .wrapper .row .feature {
  margin-bottom: 60px;
}

.features .wrapper .row .feature .icon {
  transition: all .4s ease-in-out;
}

.features .wrapper .row .feature .icon img {
  width: 100%;
  height: auto;
}

.features .wrapper .row .feature .icon:hover {
  transform: scale(1.07);
}

.features .wrapper .row .feature h5 {
  font-family: 'Spartan';
  font-size: 20px;
  font-weight: bold;
  text-transform: uppercase;
  color: #a4dda4;
  margin-top: 25px;
}

.features .wrapper .row .feature h5.blue {
  color: #002e60;
}

.features .wrapper .row .feature p {
  font-size: 15px;
}

.about {
  background: #fff;
  padding: 100px 0;
  text-align: center;
  position: relative;
}

.about .float_prods {
  display: block;
  width: 320px;
  height: 525px;
  position: absolute;
  top: 0;
  z-index: 999;
}

.about .float_prods.right {
  background: url("../images/prod2.png") center center no-repeat;
  right: 0;
  background-size: 100%;
  top: -215px;
}

.about .float_prods.left {
  background: url("../images/prod22.png") center center no-repeat;
  left: 0;
  background-size: 100%;
  top: 280px;
}

.about::after {
  content: '';
  display: block;
  width: 100%;
  height: 525px;
  background: url("../images/bg-gray.png") center center no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.about.products {
  background: #FFF;
  position: relative;
}

.about.products::after {
  content: '';
  display: block;
  width: 100%;
  height: 525px;
  background: url("../images/bg-blue.png") center center no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.about.products .btn_more {
  color: #FFF;
}

.about.products .txt h3 {
  color: #FFF !important;
}

.about.products .txt h3 span {
  color: #6da38d !important;
}

.about.products .txt p {
  color: #FFF !important;
}

.about .wrapper {
  z-index: 9;
  position: relative;
}

.about .wrapper .txt {
  display: block;
  max-width: 720px;
  height: auto;
  margin: 0 auto;
}

.about .wrapper .txt h3 {
  font-family: 'Spartan';
  font-size: 30px;
  font-weight: bold;
  text-transform: uppercase;
  margin: 0 0 15px 0;
  color: #002e60;
  padding: 0 80px;
}

.about .wrapper .txt h3 span {
  color: #efb35b;
}

.about .wrapper .txt p {
  font-size: 20px;
  color: #002e60;
}

.about .wrapper .video_box {
  display: block;
  margin: 40px auto;
}

.about .wrapper .bot_txt {
  padding: 0 50px;
}

.about .wrapper .bio {
  margin: 80px 0;
}

.about .wrapper .bio .row .col_alt {
  padding-left: 0;
  padding-right: 0;
}

.about .wrapper .bio .row .img {
  width: 100%;
  height: 100%;
  margin: 0;
}

.about .wrapper .bio .row .img img {
  width: 100%;
  height: 100%;
}

.about .wrapper .bio .row .txt {
  display: block;
  width: 100%;
  background: #000063;
  background: linear-gradient(90deg, #000063 0%, #194a8b 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000063",endColorstr="#194a8b",GradientType=1);
  text-align: left;
  padding: 88px 40px;
}

.about .wrapper .bio .row .txt h4 {
  color: #efb35b;
  text-transform: uppercase;
  font-family: 'Spartan';
  font-size: 20px;
  font-weight: bold;
}

.about .wrapper .bio .row .txt p {
  color: #FFF;
  font-size: 15px;
  margin: 0;
}

.about .wrapper .bio .row .txt .btn_more {
  font-size: 15px;
  color: #FFF;
  border-bottom: 1px solid #FFF;
  transition: 0.3s all;
}

.about .wrapper .bio .row .txt .btn_more:hover {
  color: #eeb262;
  border-color: #eeb262;
}

.about .wrapper p {
  font-size: 20px;
}

.about .wrapper .brands {
  display: block;
  width: 100%;
  height: auto;
  background: #555;
  margin: 60px 0;
}

.about .wrapper .brands figure img {
  width: 100%;
  height: auto;
}

.about .wrapper .quotes .item h4 {
  font-family: 'Fauna';
  font-size: 36px;
  color: #002e60;
  margin: 0 0 15px 0;
}

.about .wrapper .quotes .item p {
  font-family: 'Rubik';
  font-size: 18px;
  color: #002e60;
  margin: 0;
}

.about .wrapper .quotes .item p.job {
  text-transform: uppercase;
}

.map {
  background: #efb35b;
  padding: 50px 0 0 0;
  position: relative;
}

.map::after {
  content: '';
  display: block;
  width: 600px;
  height: 300px;
  background: url("../images/prods.png") center center no-repeat;
  background-size: 100%;
  position: absolute;
  top: 90px;
  right: 0;
}

.map.blue {
  background: #aab9ca;
}

.map.blue .brdr {
  background: #00153f;
  background: linear-gradient(90deg, #00153f 0%, #557495 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00153f",endColorstr="#557495",GradientType=1);
}

.map.green {
  background: #a4dda4;
}

.map .brdr {
  background: #002342;
  display: block;
  width: 100%;
  height: 230px;
  position: absolute;
  bottom: 0;
  z-index: 9;
}

.map .wrapper {
  z-index: 9999;
  clear: both;
  position: relative;
}

.map .wrapper h4 {
  font-family: 'Spartan';
  font-size: 36px;
  color: #002e60;
  font-weight: bold;
  text-transform: uppercase;
  margin: 10px 0 20px 0;
}

.map .wrapper h5 {
  font-family: 'Spartan';
  font-size: 24px;
  color: #FFF;
  font-weight: bold;
  text-transform: uppercase;
}

.map .wrapper p {
  font-family: 'Rubik';
  font-size: 18px;
  color: #002e60;
  line-height: 24px;
  margin: 0;
  display: block;
  max-width: 900px;
}

.map .wrapper .map_img {
  margin: 20px 0 0 0;
  display: block;
  max-width: 600px;
  height: auto;
  z-index: 999;
  position: relative;
}

.map .wrapper .map_img img {
  width: 100%;
  height: auto;
}

.footer {
  background: #002342;
  padding: 60px 0 15px 0;
}

.footer .wrapper .connect {
  margin-bottom: 60px;
}

.footer .wrapper .connect h4 {
  color: #FFF;
  text-transform: uppercase;
  font-family: 'Spartan';
  font-weight: bold;
  font-size: 20px;
}

.footer .wrapper .connect .social {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer .wrapper .connect .social li {
  display: inline-block;
  width: 30px;
  height: 30px;
  border: 1px solid #FFF;
  border-radius: 50px;
  margin: 0 5px;
  text-align: center;
  line-height: 28px;
  transition: all 0.3s;
}

.footer .wrapper .connect .social li:hover {
  background: #eeb262;
  border-color: #eeb262;
}

.footer .wrapper .connect .social li span {
  color: #FFF;
  font-size: 15px;
}

.footer .wrapper .row .title {
  color: #6da38d;
  font-size: 15px;
  font-family: 'Rubik';
  margin: 0 0 10px 0;
}

.footer .wrapper .row .footer_nav {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer .wrapper .row .footer_nav li {
  display: block;
  font-size: 15px;
  color: #FFF;
  font-family: 'Rubik';
  margin-bottom: 5px;
}

.footer .wrapper .row .footer_nav li a {
  font-size: 15px;
  color: #FFF;
  font-family: 'Rubik';
  text-decoration: underline;
}

.footer .wrapper .row .footer_nav li a:hover {
  color: #eeb262;
}

.footer .wrapper .row .form_contact input {
  display: block;
  width: 100%;
  margin: 8px 0;
  padding: 10px 15px;
  border-radius: 5px;
  background: #002e60;
  color: #FFF;
  border: none;
  font-family: 'Rubik';
  font-size: 15px;
}

.footer .wrapper .row .form_contact input:-ms-input-placeholder {
  color: #FFF;
  text-transform: uppercase;
}

.footer .wrapper .row .form_contact input::placeholder {
  color: #FFF;
  text-transform: uppercase;
}

.footer .wrapper .row .form_contact input:-ms-input-placeholder {
  color: #FFF;
  text-transform: uppercase;
}

.footer .wrapper .row .form_contact input::-ms-input-placeholder {
  color: #FFF;
  text-transform: uppercase;
}

.footer .wrapper .row .form_contact textarea {
  display: block;
  width: 100%;
  margin: 8px 0;
  padding: 10px 15px;
  border-radius: 5px;
  background: #002e60;
  color: #FFF;
  border: none;
  font-family: 'Rubik';
  font-size: 15px;
  resize: none;
  height: 120px;
}

.footer .wrapper .row .form_contact textarea:-ms-input-placeholder {
  color: #FFF;
  text-transform: uppercase;
}

.footer .wrapper .row .form_contact textarea::placeholder {
  color: #FFF;
  text-transform: uppercase;
}

.footer .wrapper .row .form_contact textarea:-ms-input-placeholder {
  color: #FFF;
  text-transform: uppercase;
}

.footer .wrapper .row .form_contact textarea::-ms-input-placeholder {
  color: #FFF;
  text-transform: uppercase;
}

.footer .wrapper .row .form_contact .send_btn {
  border: none;
  color: #FFF;
  outline: none;
  font-family: 'Rubik';
  text-align: left;
  background: none;
  display: block;
  width: auto;
  border-radius: 0;
  padding: 10px 0 3px 0;
  text-transform: uppercase;
  border-bottom: 1px solid #FFF;
  position: relative;
  transition: 0.3s all;
}

.footer .wrapper .row .form_contact .send_btn:hover {
  color: #eeb262;
  border-color: #eeb262;
}

.footer .wrapper .row .form_contact .send_btn span {
  font-size: 10px;
  color: #6da38d;
  position: absolute;
  right: -20px;
  top: 15px;
}

.footer .wrapper .logo_alt {
  display: inline-block;
  width: 200px;
  height: auto;
  margin-top: 50px;
}

.footer .wrapper .logo_alt img {
  width: 100%;
  height: auto;
}

.footer .wrapper .cr {
  text-align: center;
  font-family: 'Rubik';
  font-size: 15px;
  color: #002e60;
  margin-top: 15px;
}

@media screen and (max-width: 1760px) {
  .map::after {
    right: -150px;
  }
}

@media screen and (max-width: 1480px) {
  .about .float_prods.right {
    right: -120px;
  }
  .about .float_prods.left {
    left: -120px;
  }
  .map::after {
    right: -250px;
  }
}

@media screen and (max-width: 1230px) {
  .about .float_prods.right {
    right: -200px;
  }
  .about .float_prods.left {
    left: -200px;
  }
  .map::after {
    right: -320px;
  }
}

@media screen and (max-width: 1120px) {
  .map::after {
    display: none;
  }
}

@media screen and (max-width: 1068px) {
  .about .float_prods.right {
    display: none;
  }
  .about .float_prods.left {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .btn_more {
    font-size: 16px;
  }
  .masthead.product {
    height: 935px;
    position: relative;
  }
  .masthead.product .wrapper .img_box {
    max-width: 340px;
  }
  .masthead .wrapper .main_nav {
    position: relative;
  }
  .masthead .wrapper .main_nav .logo {
    width: 125px;
    margin: 0 auto;
  }
  .masthead .wrapper .main_nav .btn_menu {
    display: block;
    background: url("../images/menu.png") center center no-repeat;
    background-size: cover;
    width: 40px;
    height: 30px;
    position: absolute;
    top: 10px;
    right: 0px;
  }
  .masthead .wrapper .main_nav .menu {
    position: relative;
    right: 0;
    top: 20px;
    border-top: 3px solid #FFF;
    background: #020242;
    text-align: center;
    display: block;
    width: 100%;
    padding-right: 20px;
    height: 0;
    overflow: hidden;
    transition: 0.7s all;
  }
  .masthead .wrapper .main_nav .menu.open {
    height: 250px;
  }
  .masthead .wrapper .main_nav .menu li {
    display: block;
    margin: 24px 0;
  }
  .masthead .wrapper .main_nav .menu li a {
    font-size: 14px;
    font-weight: bold;
    display: block;
    width: 100%;
    padding: 5px 0;
  }
  .masthead .wrapper .content {
    margin-top: 100px;
  }
  .masthead .wrapper .content .title {
    font-size: 36px;
  }
  .masthead .wrapper .content p {
    font-size: 22px;
  }
  .features .wrapper .txt {
    margin-top: 70px;
  }
  .features .wrapper .row .feature .icon {
    width: 70%;
    margin: 20px auto;
  }
  .features .wrapper .row .feature h5 {
    font-size: 19px;
  }
  .about {
    padding: 70px 0;
  }
  .about .float_prods {
    display: none;
  }
  .about .wrapper .txt h3 {
    font-size: 26px;
  }
  .about .wrapper .txt p {
    font-size: 18px;
  }
  .about .wrapper .bio .row .img {
    width: 100%;
    height: auto;
    margin-bottom: 0px;
  }
  .about .wrapper .bio .row .img img {
    height: auto;
  }
  .about .wrapper p {
    font-size: 18px;
  }
  .about .wrapper .quotes .item h4 {
    font-size: 28px;
  }
  .about .wrapper .quotes .item p {
    font-size: 16px;
  }
  .map::after {
    content: '';
    display: none;
  }
  .map.blue {
    padding: 65px 0 0 0;
  }
  .map .brdr {
    height: 175px;
  }
  .map .wrapper h4 {
    font-size: 30px;
  }
  .map .wrapper h5 {
    font-size: 20px;
  }
  .footer .wrapper .connect {
    margin-bottom: 40px;
  }
  .footer .wrapper .connect h4 {
    font-size: 18px;
  }
  .footer .wrapper .row .footer_nav {
    margin: 10px 0 0 0;
  }
  .footer .wrapper .row .form_contact {
    margin-top: 50px;
  }
}

.products_features {
  text-align: center;
  margin-top: 110px;
}

.products_features .wrapper .btn_more {
  display: inline-block;
  margin: 30px 0 30px 0;
}

.products_features .wrapper h3 {
  font-size: 20px;
  font-family: 'Spartan';
  text-transform: uppercase;
  font-weight: bold;
  margin-bottom: 40px;
}

.products_features .wrapper .sizes {
  display: block;
  max-width: 550px;
  margin: 0 auto 55px auto;
}

.products_features .wrapper .sizes .note {
  margin-top: 30px;
}

.products_features .wrapper .sizes form .item {
  text-align: center;
}

.products_features .wrapper .sizes form .item p {
  font-size: 15px;
  font-family: 'Rubik';
  text-transform: uppercase;
  font-weight: bold;
}

.products_features .wrapper .sizes form .item select {
  display: block;
  width: 100%;
  border: 1px solid #a4dda4;
  padding: 8px 0px 8px 25px;
  border-radius: 5px;
  outline: none;
}

.products_features .wrapper .sizes form .item select option {
  text-transform: uppercase;
}

.products_gallery {
  text-align: center;
  margin: 20px 0;
  padding: 50px 0;
}

.products_gallery .wrapper .products_list {
  margin-top: 20px;
  display: none;
}

.products_gallery .wrapper .products_list h4 {
  font-family: 'Spartan';
  font-size: 20px;
  color: #002e60;
  font-weight: bold;
  text-transform: uppercase;
  margin-top: 50px;
}

.products_gallery .wrapper .title {
  text-transform: uppercase;
  font-family: 'Spartan';
  font-size: 25px;
  color: #efb35b;
  font-weight: bold;
}

.products_gallery .wrapper .title span {
  color: #002e60;
}

.products_gallery .wrapper p {
  display: block;
  font-family: 'Fauna One';
  font-size: 20px;
  color: #002e60;
  margin: 0 auto;
  max-width: 600px;
}

.products_gallery .wrapper .gallery {
  margin-top: 40px;
}

.products_gallery .wrapper .gallery .row .img {
  display: block;
  width: 100%;
  height: auto;
}

.products_gallery .wrapper .gallery .row .img img {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 768px) {
  .products_features {
    /*text-align: center;
		margin-top: 30px;*/
  }
  .products_features .wrapper .btn_more {
    /*display: inline-block;
				margin: 30px 0 30px 0;*/
  }
  .products_features .wrapper h3 {
    /*font-size: 20px;
				font-family: 'Spartan';
				text-transform: uppercase;
				font-weight: bold;
				margin-bottom: 40px;*/
  }
  .products_features .wrapper .sizes {
    /*display: block;
				max-width: 550px;
				margin: 0 auto 55px auto;*/
  }
  .products_features .wrapper .sizes form .item {
    text-align: center;
  }
  .products_features .wrapper .sizes form .item p {
    /*font-size: 15px;
							font-family: 'Rubik';
							text-transform: uppercase;
							font-weight: bold;*/
  }
  .products_features .wrapper .sizes form .item select {
    /*display: block;
							width: 100%;
							border: 1px solid #a4dda4;
							padding: 8px 0px 8px 25px;
							border-radius: 5px;
							outline: none;*/
    padding: 8px 10px;
    margin-bottom: 20px;
  }
  .products_features .wrapper .sizes form .item select option {
    /*text-transform: uppercase;*/
  }
  .products_gallery {
    /*text-align: center;
		margin: 20px 0;
		padding: 50px 0;*/
  }
  .products_gallery .wrapper .title {
    /*text-transform: uppercase;
				font-family: 'Spartan';
				font-size: 25px;
				color: #efb35b;
				font-weight: bold;*/
    font-size: 22px;
  }
  .products_gallery .wrapper .title span {
    /*color: #002e60;*/
  }
  .products_gallery .wrapper p {
    /*display: inline-block; 
				font-family: 'Fauna';
				font-size: 20px;
				color: #002e60;
				margin: 0 auto;
				max-width: 600px;*/
    font-size: 18px;
  }
  .products_gallery .wrapper .gallery {
    /*margin-top: 40px;*/
    margin-top: 60px;
  }
  .products_gallery .wrapper .gallery .row .img {
    /*display: block;
						width: 100%;
						height: 185px;
						background: #ccc;*/
    width: 80%;
    margin: 0 auto;
    height: auto;
    margin-bottom: 40px;
  }
}

.philo {
  text-align: center;
  padding: 85px 0 60px 0;
}

.philo .wrapper .title {
  font-family: 'Spartan';
  font-size: 30px;
  color: #efb35b;
  text-transform: uppercase;
  margin-bottom: 50px;
  font-weight: bold;
}

.philo .wrapper .row h4 {
  font-family: 'Spartan';
  font-size: 20px;
  color: #002e60;
  text-transform: uppercase;
  font-weight: bold;
  margin-bottom: 18px;
}

.philo .wrapper .row p {
  font-family: 'Rubik';
  font-size: 15px;
  padding: 0 50px;
}

.philo .wrapper .row ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.philo .wrapper .row ul li {
  font-family: 'Rubik';
  font-size: 15px;
}

.philo .wrapper .txt_bottom {
  margin-top: 80px;
}

.philo .wrapper .txt_bottom h4 {
  font-family: 'Spartan';
  font-size: 30px;
  color: #efb35b;
  text-transform: uppercase;
  font-weight: bold;
  margin-bottom: 15px;
}

.philo .wrapper .txt_bottom p {
  font-family: 'Fauna One';
  color: #002e60;
  font-size: 20px;
  padding: 0 60px;
}

.img_gallery {
  padding: 50px 0 80px 0;
  background: #00153f;
  background: linear-gradient(90deg, #00153f 0%, #557495 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00153f",endColorstr="#557495",GradientType=1);
}

.img_gallery .wrapper .carousel {
  display: block;
  max-width: 835px;
  height: auto;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .philo .wrapper .row p {
    margin-bottom: 50px;
  }
  .philo .wrapper .row ul {
    margin-bottom: 50px;
  }
  .philo .wrapper .txt_bottom p {
    font-size: 18px;
  }
  .img_gallery {
    padding: 80px 0;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9faGVscGVycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19wYXJzZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcXVlcnkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19zaW5nbGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3NpbmdsZS9fZGVmYXVsdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX2RvdWJsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LXBhaXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZG91YmxlLXN0cmluZy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fdHJpcGxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy90cmlwbGUvX2RlZmF1bHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19yZXNvbHV0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9yZXNvbHV0aW9uL19yZXNvbHV0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX25vLXF1ZXJ5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3Jlc3BvbmQtdG8uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbGVnYWN5LXNldHRpbmdzLnNjc3MiLCJmdW5jdGlvbnMvX3JlbS1jYWxjLnNjc3MiLCJjb3JlL19ub3JtYWxpemUuc2NzcyIsImNvcmUvX2FjY2Vzc2liaWxpdHkuc2NzcyIsImNvcmUvX2JyZWFrcG9pbnRzLnNjc3MiLCJjb3JlL19jb2xvcnMuc2NzcyIsImNvcmUvX2ZvbnRzLnNjc3MiLCJjb3JlL19nbG9iYWwuc2NzcyIsImNvcmUvX3BhZ2UtbGF5b3V0LnNjc3MiLCJjb3JlL190eXBvZ3JhcGh5LnNjc3MiLCJjb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJjb21wb25lbnRzL19saXN0cy5zY3NzIiwiY29tcG9uZW50cy9fdGFicy5zY3NzIiwidGVtcGxhdGVzL19ob21lLnNjc3MiLCJ0ZW1wbGF0ZXMvX3Byb2R1Y3RvLnNjc3MiLCJ0ZW1wbGF0ZXMvX25vc290cm9zLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRXh0ZXJuYWwgbGlic1xuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50JztcblxuLy8gRnVuY3Rpb25zXG5AaW1wb3J0ICdmdW5jdGlvbnMvcmVtLWNhbGMnO1xuXG4vLyBDb3JlXG5cbkBpbXBvcnQgJ2NvcmUvbm9ybWFsaXplJztcbkBpbXBvcnQgJ2NvcmUvYWNjZXNzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb3JlL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ2NvcmUvY29sb3JzJztcbkBpbXBvcnQgJ2NvcmUvZm9udHMnO1xuQGltcG9ydCAnY29yZS9nbG9iYWwnO1xuQGltcG9ydCAnY29yZS9wYWdlLWxheW91dCc7XG5AaW1wb3J0ICdjb3JlL3R5cG9ncmFwaHknO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9saXN0cyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuXG4vLyBUZW1wbGF0ZXNcbkBpbXBvcnQgJ3RlbXBsYXRlcy9ob21lJztcbkBpbXBvcnQgJ3RlbXBsYXRlcy9wcm9kdWN0byc7XG5AaW1wb3J0ICd0ZW1wbGF0ZXMvbm9zb3Ryb3MnO1xuXG5cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXMgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50LCAkc2V0dGluZykge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQoJHNldHRpbmcpIHtcbiAgQGlmIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50LCAkc2V0dGluZyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQnJlYWtwb2ludC1TZXR0aW5ncywgJHNldHRpbmcpO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpZiAoc3RyLWluZGV4KCRzZXR0aW5nLCAnLScpIG9yIHN0ci1pbmRleCgkc2V0dGluZywgJ18nKSkgYW5kIHN0ci1pbmRleCgkc2V0dGluZywgJyAnKSA9PSBudWxsIHtcbiAgICBAd2FybiBcIldvcmRzIGluIEJyZWFrcG9pbnQgc2V0dGluZ3Mgc2hvdWxkIGJlIHNlcGFyYXRlZCBieSBzcGFjZXMsIG5vdCBkYXNoZXMgb3IgdW5kZXJzY29yZXMuIFBsZWFzZSByZXBsYWNlIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYmV0d2VlbiB3b3JkcyB3aXRoIHNwYWNlcy4gU2V0dGluZ3Mgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB1bnRpbCBjaGFuZ2VkLlwiO1xuICB9XG4gICRicmVha3BvaW50OiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnQsICgkc2V0dGluZzogJHZhbHVlKSkgIWdsb2JhbDtcbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICAkYnJlYWtwb2ludC1jaGFuZ2U6IGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJrcHQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5AbWl4aW4gYmtwdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZW1vdmUgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDEge1xuICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7XG4gIH1cblxuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICRicmVha3BvaW50OiBtYXAtcmVtb3ZlKCRicmVha3BvaW50LCAkc2V0dGluZykgIWdsb2JhbDtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufVxuXG5AbWl4aW4gYmtwdC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgQnJlYWtwb2ludCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCk7XG4kcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgSGFzIENvbnRleHRcbi8vIFJldHVybnMgd2hldGhlciBvciBub3QgeW91IGFyZSBpbnNpZGUgYSBCcmVha3BvaW50IHF1ZXJ5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkge1xuICBAaWYgbGVuZ3RoKCRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEdldCBDb250ZXh0XG4vLyAkZmVhdHVyZTogSW5wdXQgZmVhdHVyZSB0byBnZXQgaXQncyBjdXJyZW50IE1RIGNvbnRleHQuIFJldHVybnMgZmFsc2UgaWYgbm8gY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQtY29udGV4dCgkZmVhdHVyZSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkZ2V0OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIG9mIG5vLXF1ZXJ5IGZyb20gZ2V0IHNpZGUgc28gL2ZhbHNlLyBwcmVwZW5kcyBhcmVuJ3QgcmV0dXJuZWRcbiAgICBAaWYgJGZlYXR1cmUgPT0gJ25vLXF1ZXJ5JyB7XG4gICAgICBAaWYgdHlwZS1vZigkZ2V0KSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ2V0KSA+IDEgYW5kIG50aCgkZ2V0LCAxKSA9PSBmYWxzZSB7XG4gICAgICAgICRnZXQ6IG50aCgkZ2V0LCBsZW5ndGgoJGdldCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRnZXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkgYW5kICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgQHJldHVybiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKSB7XG4gIEBpZiAkdmFsdWUgPT0gJ21vbm9jaHJvbWUnIHtcbiAgICAkZmVhdHVyZTogJ21vbm9jaHJvbWUnO1xuICB9XG5cbiAgJGN1cnJlbnQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICBAaWYgJGN1cnJlbnQgYW5kIGxlbmd0aCgkY3VycmVudCkgPT0gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZSBhbHJlYWR5IHF1ZXJpZWQgYWdhaW5zdCBgI3skZmVhdHVyZX1gLiBVbmV4cGVjdGVkIHRoaW5ncyBtYXkgaGFwcGVuIGlmIHlvdSBxdWVyeSBhZ2FpbnN0IHRoZSBzYW1lIGZlYXR1cmUgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgYGFuZGAgcXVlcnkuIEJyZWFrcG9pbnQgaXMgb3ZlcndyaXRpbmcgdGhlIGN1cnJlbnQgY29udGV4dCB3aXRoIGAjeyR2YWx1ZX1gXCI7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJHYtaG9sZGVyOiAoKTtcbiAgICBAZm9yICRpIGZyb20gMSB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdi1ob2xkZXI6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgLSAxIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gcmVzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzIHtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29udmVydHMgdGhlIGlucHV0IHZhbHVlIHRvIEJhc2UgRU1zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKSB7XG4gICR2YWx1ZS11bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgLy8gV2lsbCBjb252ZXJ0IHJlbGF0aXZlIEVNcyBpbnRvIHJvb3QgRU1zLlxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykgYW5kIHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpID09ICdudW1iZXInIGFuZCAkdmFsdWUtdW5pdCA9PSAnZW0nIHtcbiAgICAkYmFzZS11bml0OiB1bml0KGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKTtcblxuICAgIEBpZiAkYmFzZS11bml0ID09ICdweCcgb3IgJGJhc2UtdW5pdCA9PSAnJScgb3IgJGJhc2UtdW5pdCA9PSAnZW0nIG9yICRiYXNlLXVuaXQgPT0gJ3B0JyB7XG4gICAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIC8gYmFzZS1jb252ZXJzaW9uKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSAqIDFlbTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJyN7YnJlYWtwb2ludC1nZXQoXFwnYmFzZSBmb250IHNpemVcXCcpfSBpcyBub3Qgc2V0IGluIHZhbGlkIHVuaXRzIGZvciBmb250IHNpemUhJztcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpO1xuICB9XG59XG5cbkBmdW5jdGlvbiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSB7XG4gICR1bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgQGlmICR1bml0ID09ICdweCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTZweCAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnJScge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTAwJSAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnZW0nIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAncHQnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEycHQgKiAxZW07XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuLy8gICAgQHdhcm4gJ0V2ZXJ5dGhpbmcgaXMgdGVycmlibGUhIFdoYXQgaGF2ZSB5b3UgZG9uZT8hJztcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIG1pbi9tYXggcGFpclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1oZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS13aWR0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXNvbHV0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbi1tYXgoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBzdHJpbmcgdmFsdWVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzOiAgJ29yaWVudGF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY2FuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsdW1pbm9zaXR5JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmIGJyZWFrcG9pbnQtbWluLW1heCgkaXRlbSkge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtaW4tI3skaXRlbX0nIG9yICRmZWF0dXJlID09ICdtYXgtI3skaXRlbX0nIHtcbiAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGlzIGEgbWVkaWEgdHlwZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1tZWRpYS10eXBlczogICdhbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnYnJhaWxsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdlbWJvc3NlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdoYW5kaGVsZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcmludCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzcGVlY2gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R2JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJG1lZGlhIGluICRicmVha3BvaW50LW1lZGlhLXR5cGVzIHtcbiAgICBAaWYgKCRmZWF0dXJlID09ICRtZWRpYSkgb3IgKCRmZWF0dXJlID09ICdub3QgI3skbWVkaWF9Jykgb3IgKCRmZWF0dXJlID09ICdvbmx5ICN7JG1lZGlhfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gc3RhbmQgYWxvbmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkge1xuICAkcmVzb2x1dGlvbnM6ICdkZXZpY2UtcGl4ZWwtcmF0aW8nLCAnZHByJztcblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICAkcmVzb2x1dGlvbnM6IGFwcGVuZCgkcmVzb2x1dGlvbnMsICdyZXNvbHV0aW9uJyk7XG4gIH1cblxuICBAZWFjaCAkcmVzbyBpbiAkcmVzb2x1dGlvbnMge1xuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBhcnNlciBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInBhcnNlcnMvcXVlcnlcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy90cmlwbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3Jlc29sdXRpb25cIjtcblxuJE1lbW8tRXhpc3RzOiBmdW5jdGlvbi1leGlzdHMobWVtby1nZXQpIGFuZCBmdW5jdGlvbi1leGlzdHMobWVtby1zZXQpO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgRnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcbiAgJHJ1bjogdHJ1ZTtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gR3JhYiB0aGUgTWVtbyBPdXRwdXQgaWYgTWVtb2l6YXRpb24gY2FuIGJlIGEgdGhpbmdcbiAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcblxuICAgIEBpZiAkcmV0dXJuICE9IG51bGwge1xuICAgICAgJHJ1bjogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkTWVtby1FeGlzdHMgb3IgJHJ1biB7XG4gICAgLy8gSW50ZXJuYWwgVmFyaWFibGVzXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiBmYWxzZTtcbiAgICAkcmV0dXJuOiAoKTtcblxuICAgIC8vIFJlc2VydmUgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJGhvbGRlci1jb250ZXh0OiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyO1xuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuXG4gICAgLy8gVGVzdCB0byBzZWUgaWYgaXQncyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0XG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xuXG5cbiAgICBAaWYgKCRvci1saXN0ID09IGZhbHNlIGFuZCBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IGZhbHNlKSB7XG4gICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gICAgICAkbGFzdDogbnRoKCRxdWVyeSwgJGxlbmd0aCk7XG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xuXG4gICAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkge1xuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgQGlmIChicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IHRydWUpIHtcbiAgICAgICAgJG1xOiAoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRtcTogYXBwZW5kKCRtcSwgbnRoKCRxdWVyeSwgJGkpLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRtcSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkcmV0dXJuOiAoJ3F1ZXJ5JzogJHF1ZXJ5LXN0cmluZyxcbiAgICAgICAgJ2ZhbGxiYWNrJzogJHF1ZXJ5LWZhbGxiYWNrLFxuICAgICAgICAnY29udGV4dCBob2xkZXInOiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLFxuICAgICAgICAncXVlcnkgY291bnQnOiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50XG4gICAgKTtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZXh0cykgPiAwIGFuZCBudGgoJGNvbnRleHRzLCAxKSAhPSBmYWxzZSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICAgICRjb250ZXh0LW1hcDogKCk7XG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xuICAgICAgICAkY29udGV4dC1tYXA6IG1hcC1tZXJnZSgkY29udGV4dC1tYXAsICgkY29udGV4dDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgkY29udGV4dCkpKTtcbiAgICAgIH1cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cbiAgICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAgICRob2xkZXI6IG1lbW8tc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cywgJHJldHVybik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYWwgQnJlYWtwb2ludCBQYXJzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XG4gIC8vIEluY3JlYXNlIG51bWJlciBvZiAnYW5kJyBxdWVyaWVzXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgKyAxICFnbG9iYWw7XG5cbiAgLy8gU2V0IHVwIE1lZGlhIFR5cGVcbiAgJHF1ZXJ5LXByaW50OiAnJztcblxuICAkZm9yY2UtYWxsOiAoKGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpID09IHRydWUpIGFuZCAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSA9PSAnYWxsJykpO1xuICAkZW1wdHktbWVkaWE6IHRydWU7XG4gIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSAhPSAnYWxsJykge1xuICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuICB9XG5cblxuICAkcXVlcnktcmVzb2x1dGlvbjogZmFsc2U7XG5cbiAgJHF1ZXJ5LWhvbGRlcjogYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpO1xuXG5cblxuICAvLyBMb29wIG92ZXIgZWFjaCBwYXJzZWQgb3V0IHF1ZXJ5IGFuZCB3cml0ZSBpdCB0byAkcXVlcnktcHJpbnRcbiAgJGZpcnN0OiB0cnVlO1xuXG4gIEBlYWNoICRmZWF0dXJlIGluICRxdWVyeS1ob2xkZXIge1xuICAgICRsZW5ndGg6IGxlbmd0aCgkZmVhdHVyZSk7XG5cbiAgICAvLyBQYXJzZSBhIHNpbmdsZSBmZWF0dXJlXG4gICAgQGlmICgkbGVuZ3RoID09IDEpIHtcbiAgICAgIC8vIEZlYXR1cmUgaXMgY3VycmVudGx5IGEgbGlzdCwgZ3JhYiB0aGUgYWN0dWFsIHZhbHVlXG4gICAgICAkZmVhdHVyZTogbnRoKCRmZWF0dXJlLCAxKTtcblxuICAgICAgLy8gTWVkaWEgVHlwZSBtdXN0IGJ5IGNvbnZlbnRpb24gYmUgdGhlIGZpcnN0IGl0ZW0sIHNvIGl0J3Mgc2FmZSB0byBmbGF0IG92ZXJyaWRlICRxdWVyeS1wcmludCwgd2hpY2ggcmlnaHQgbm93IHNob3VsZCBvbmx5IGJlIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGVcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkpIHtcbiAgICAgICAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yICgkZmVhdHVyZSAhPSAnYWxsJykge1xuICAgICAgICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICAgICAgICRxdWVyeS1wcmludDogJGZlYXR1cmU7XG4gICAgICAgICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcblxuICAgICAgICAgIC8vIFNldCBDb250ZXh0XG4gICAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWVkaWEsICRxdWVyeS1wcmludCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIGRvdWJsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMikge1xuICAgICAgQGlmIChicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpICE9IGZhbHNlKSB7XG4gICAgICAgICRxdWVyeS1yZXNvbHV0aW9uOiAkZmVhdHVyZTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogbnVsbDtcbiAgICAgICAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpcixcbiAgICAgICAgLy8gd2UgY2hlY2sgdG8gc2VlIGlmIG9uZSBpcyBhIHNpbmdsZS1zdHJpbmcgdmFsdWUsXG4gICAgICAgIC8vIHRoZW4gd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gICAgICAgICRhbHBoYTogbnRoKCRmZWF0dXJlLCAxKTtcbiAgICAgICAgJGJldGE6IG50aCgkZmVhdHVyZSwgMik7XG4gICAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGFscGhhKSBvciBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGJldGEpIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYWxwaGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYmV0YSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIHRyaXBsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xuICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgfVxuXG4gIH1cblxuICBAaWYgKCRxdWVyeS1yZXNvbHV0aW9uICE9IGZhbHNlKSB7XG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICB9XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZmVhdHVyZSB0aGF0J3MgYmVlbiBkZXRlY3RlZCBzbyBmYXIgYW5kIGFwcGVuZCAnZmFsc2UnIHRvIHRoZSB0aGUgdmFsdWUgbGlzdCB0byBpbmNyZW1lbnQgdGhlaXIgY291bnRlcnNcbiAgQGVhY2ggJGYsICR2IGluICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIge1xuICAgICR2LWhvbGRlcjogJHY7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGlmIGxlbmd0aCgkdi1ob2xkZXIpIDwgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgICAgQGlmICRmID09ICdtZWRpYScge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGY6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeS1wcmludDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSkge1xuICAvLyBQYXJzZSBmZWF0dXJlcyBvdXQgb2YgYW4gaW5kaXZpZHVhbCBxdWVyeVxuICAkZmVhdHVyZS1ob2xkZXI6ICgpO1xuICAkcXVlcnktaG9sZGVyOiAoKTtcbiAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgLy8gSWYgd2UndmUgZ290IGEgc3RyaW5nL251bWJlciwgbnVtYmVyL3N0cmluZywgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYSB2YWxpZCBzdHJpbmcvbnVtYmVyIHBhaXIgb3IgdHdvIHNpbmdsZXNcbiAgICBAaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykgb3IgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuXG4gICAgICAkbnVtYmVyOiAnJztcbiAgICAgICR2YWx1ZTogJyc7XG5cbiAgICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDIpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgYSBzaW5nbGUgdmFsdWUsIGNoZWNrIHRvIHNlZSBpZiB0aGUgbnVtYmVyIHBhc3NlZCBpbiBpcyBhIHZhbGlkIGlucHV0IGZvciBzYWlkIHNpbmdsZSB2YWx1ZS4gRm9ydHVuYXRlbHksIGFsbCBjdXJyZW50IHNpbmdsZS12YWx1ZSBvcHRpb25zIG9ubHkgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMsIHNvIHRoaXMgY2hlY2sgaXMgZWFzeS5cbiAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJHZhbHVlKSB7XG4gICAgICAgIEBpZiB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gSWYgdGhlIHN0cmluZyBpcyBhIG1lZGlhIHR5cGUsIHNwbGl0IHRoZSBxdWVyeVxuICAgICAgQGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEoJHZhbHVlKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgc2luZ2xlIGZlYXR1cmUsIHdlJ3JlIGp1c3QgZ29pbmcgdG8gYXNzdW1lIGl0J3MgYSBwcm9wZXIgc3RyaW5nL3ZhbHVlIHBhaXIsIGFuZCByb2xsIHdpdGggaXQuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cblxuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggbnVtYmVycywgd2UgYXNzdW1lIGl0J3MgYSBkb3VibGUgYW5kIHJvbGwgd2l0aCB0aGF0XG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykge1xuICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBzdHJpbmdzIGFuZCBuZWl0aGVyIGFyZSBzaW5nbGVzLCB3ZSByb2xsIHdpdGggdGhhdC5cbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDMge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCB0aHJlZSBpdGVtcyBhbmQgbm9uZSBpcyBhIGxpc3QsIHdlIGNoZWNrIHRvIHNlZVxuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAzKSkgIT0gJ2xpc3QnIHtcbiAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGl0ZW1zIGFyZSBzaW5nbGUgc3RyaW5nIHZhbHVlcyBhbmQgbm9uZSBvZiB0aGUgdmFsdWVzIGFyZSBtZWRpYSB2YWx1ZXMsIHdlJ3JlIGdvb2QuXG4gICAgICBAaWYgKG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAzKSkpIGFuZCAgKChub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMykpKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJGZlYXR1cmUtaG9sZGVyLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIGxldCdzIGNoZWNrIHRvIHNlZSBpZiB0aGUgZmlyc3QgaXRlbSBpcyBhIG1lZGlhIHR5cGVcbiAgICAgIEBlbHNlIGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMiksIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBpdGVtLCBvciBpZiBpdCdzIG5vdCBhIHNwZWNpYWwgY2FzZSBkb3VibGUgb3IgdHJpcGxlLCB3ZSBjYW4gc2ltcGx5IHJldHVybiB0aGUgcXVlcnkuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5nbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBmZWF0dXJlIHRoYXQgY2FuIHN0YW5kIGFsb25lLCB3ZSBsZXQgaXRcbiAgQGlmIChicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpKSB7XG4gICAgJHBhcnNlZDogJGZlYXR1cmU7XG4gICAgLy8gU2V0IENvbnRleHRcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJGZlYXR1cmUpO1xuICB9XG4gIC8vIElmIGl0J3Mgbm90IGEgc3RhbmQgYWxvbmUgZmVhdHVyZSwgd2UgcGFzcyBpdCBvZmYgdG8gdGhlIGRlZmF1bHQgaGFuZGxlci5cbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAnKCcgKyAkcGFyc2VkICsgJyknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRkZWZhdWx0LCAkZmVhdHVyZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkgYW5kICh0eXBlLW9mKCRmZWF0dXJlKSA9PSAnbnVtYmVyJykge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAje2JyZWFrcG9pbnQtdG8tYmFzZS1lbSgkZmVhdHVyZSl9JztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7JGZlYXR1cmV9JztcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdC1wYWlyXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RvdWJsZS1zdHJpbmdcIjtcbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgJGZpcnN0OiBudGgoJGZlYXR1cmUsIDEpO1xuICAkc2Vjb25kOiBudGgoJGZlYXR1cmUsIDIpO1xuXG4gIC8vIElmIHdlJ3ZlIGdvdCB0d28gbnVtYmVycywgd2Uga25vdyB3ZSBuZWVkIHRvIHVzZSB0aGUgZGVmYXVsdCBwYWlyIGJlY2F1c2UgdGhlcmUgYXJlIG5vIG1lZGlhIHF1ZXJpZXMgdGhhdCBoYXMgYSBtZWRpYSBmZWF0dXJlIHRoYXQgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnbnVtYmVyJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiB0aGV5IGFyZSBib3RoIHN0cmluZ3MsIHdlIHNlbmQgaXQgdGhyb3VnaCB0aGUgc3RyaW5nIHBhcnNlclxuICBAZWxzZSBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ3N0cmluZycge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IHBhaXInKTtcbiAgJG1pbjogJyc7XG4gICRtYXg6ICcnO1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGRlZmF1bHR9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGRlZmF1bHR9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGRlZmF1bHR9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRkZWZhdWx0fTogI3skbWF4fSknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIC8vIFRlc3QgdG8gc2VlIHdoaWNoIGlzIHRoZSBmZWF0dXJlIGFuZCB3aGljaCBpcyB0aGUgdmFsdWVcbiAgQGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmlyc3QpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJHNlY29uZCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIk5laXRoZXIgI3skZmlyc3R9IG5vciAjeyRzZWNvbmR9IGlzIGEgdmFsaWQgbWVkaWEgcXVlcnkgbmFtZS5cIjtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSc7XG59IiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJHZhbHVlOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKTtcbiAgfVxuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSdcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwidHJpcGxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG5cbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gc2VwYXJhdGUgdGhlIHN0cmluZyBmZWF0dXJlcyBmcm9tIHRoZSB2YWx1ZSBudW1iZXJzXG4gICRzdHJpbmc6IG51bGw7XG4gICRudW1iZXJzOiBudWxsO1xuICBAZWFjaCAkdmFsIGluICRmZWF0dXJlIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsKSA9PSBzdHJpbmcge1xuICAgICAgJHN0cmluZzogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmIHR5cGUtb2YoJG51bWJlcnMpID09ICdudWxsJyB7XG4gICAgICAgICRudW1iZXJzOiAkdmFsO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyczogYXBwZW5kKCRudW1iZXJzLCAkdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRzdHJpbmcsIG50aCgkbnVtYmVycywgMSksIG50aCgkbnVtYmVycywgMikpO1xuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG5cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRmZWF0dXJlLCAkZmlyc3QsICRzZWNvbmQpIHtcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRmZWF0dXJlfSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRmZWF0dXJlfSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRmZWF0dXJlfTogI3skbWlufSkgYW5kIChtYXgtI3skZmVhdHVyZX06ICN7JG1heH0pJztcbn1cbiIsIkBpbXBvcnQgXCJyZXNvbHV0aW9uL3Jlc29sdXRpb25cIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSBhbmQgJHF1ZXJ5LXJlc29sdXRpb24ge1xuICAgICRyZXNvbHV0aW9uczogYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRxdWVyeS1yZXNvbHV0aW9uKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcbiAgICAkcXVlcnktaG9sZGVyOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcXVlcnk6ICcjeyRxdWVyeS1wcmludH0gI3skbGVhZGVyfSN7bnRoKCRyZXNvbHV0aW9ucywgJGkpfSc7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXG4gICAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHJlc29sdXRpb24pIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9uKTtcblxuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAkZmVhdHVyZTogJyc7XG4gICAgJHZhbHVlOiAnJztcblxuICAgIC8vIEZpbmQgd2hpY2ggaXMgbnVtYmVyXG4gICAgQGlmIHR5cGUtb2YobnRoKCRyZXNvbHV0aW9uLCAxKSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIG1pbi9tYXgvc3RhbmRhcmRcbiAgICBAaWYgaW5kZXgoJHJlc29sdXRpb24sICdtaW4tcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XG4gICAgfVxuICAgIEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21heC0nO1xuICAgIH1cblxuICAgICRzdGFuZGFyZDogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlfSknO1xuXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxuICAgIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ2RwcHgnIHtcbiAgICAgICRiYXNlOiA5NmRwaTtcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcbiAgICAgICAgJGJhc2U6IDI0My44NGRwY207XG4gICAgICB9XG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJGZhbGxiYWNrOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWUgLyAxZHBweCAqIDk2ZHBpfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1uby1xdWVyeSgkcXVlcnkpIHtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSAnbGlzdCcge1xuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRrZXl3b3JkKSA9PSAnc3RyaW5nJyBhbmQgKCRrZXl3b3JkID09ICduby1xdWVyeScgb3IgJGtleXdvcmQgPT0gJ25vIHF1ZXJ5JyBvciAka2V5d29yZCA9PSAnZmFsbGJhY2snKSB7XG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IHRoZSBCcmVha3BvaW50cyB2YXJpYWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuJEJSRUFLUE9JTlRTOiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXNwb25kLXRvIEFQSSBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcmVzcG9uZC10bygkY29udGV4dCwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPiAwIGFuZCBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbWVzcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBhZGQgYnJlYWtwb2ludHMgZm9yIHJlc3BvbmQtdG8uIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludCgpYCB0byBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoKWAuIFRoZSBgYWRkLWJyZWFrcG9pbnQoKWAgZnVuY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCI7XG4gICAgJEJSRUFLUE9JTlRTOiAkYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgICAkYnJlYWtwb2ludHM6ICgpICFnbG9iYWw7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkQlJFQUtQT0lOVFMpICE9ICdtYXAnIHtcbiAgICAvLyBKdXN0IGluIGNhc2Ugc29tZW9uZSB3cml0ZXMgZ2liYmVyaXNoIHRvIHRoZSAkYnJlYWtwb2ludHMgdmFyaWFibGUuXG4gICAgQHdhcm4gXCJZb3VyIGJyZWFrcG9pbnRzIGFyZW4ndCBhIG1hcCEgYHJlc3BvbmQtdG9gIGV4cGVjdHMgYSBtYXAuIFBsZWFzZSBjaGVjayB0aGUgdmFsdWUgb2YgJEJSRUFLUE9JTlRTIHZhcmlhYmxlLlwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkY29udGV4dCksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQHdhcm4gXCJgI3skY29udGV4dH1gIGlzbid0IGEgZGVmaW5lZCBicmVha3BvaW50ISBQbGVhc2UgYWRkIGl0IHVzaW5nIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KGAjeyRjb250ZXh0fWAsICR2YWx1ZSk7YFwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIllvdSBoYXZlbid0IGNyZWF0ZWQgYW55IGJyZWFrcG9pbnRzIHlldCEgTWFrZSBzb21lIGFscmVhZHkhIGBAaW5jbHVkZSBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQpYFwiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQWRkIEJyZWFrcG9pbnQgdG8gQnJlYWtwb2ludHNcbi8vIFRPRE86IFJlbW92ZSBmdW5jdGlvbiBpbiBuZXh0IHJlbGVhc2Vcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID09IDAge1xuICAgIEByZXR1cm4gJG91dHB1dDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIGFuZCAkb3ZlcndyaXRlICE9IHRydWUge1xuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XG4gICAgICBAcmV0dXJuICRicmVha3BvaW50cztcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XG4gICAgICBAcmV0dXJuIG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICRvdXRwdXQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xuICAkb3V0cHV0OiAoJG5hbWU6ICRia3B0KTtcblxuICBAaWYgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgJEJSRUFLUE9JTlRTOiAkb3V0cHV0ICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgJEJSRUFLUE9JTlRTOiAkQlJFQUtQT0lOVFMgIWdsb2JhbDtcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XG4gICAgICAkQlJFQUtQT0lOVFM6IG1hcC1tZXJnZSgkQlJFQUtQT0lOVFMsICRvdXRwdXQpICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG5cbkBmdW5jdGlvbiBnZXQtYnJlYWtwb2ludCgkbmFtZTogZmFsc2UpIHtcbiAgQGlmICRuYW1lID09IGZhbHNlIHtcbiAgICBAcmV0dXJuICRCUkVBS1BPSU5UUztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJG5hbWUpO1xuICB9XG59XG4iLCJAbWl4aW4gbGVnYWN5LXNldHRpbmdzLXdhcm5pbmcge1xuICAkbGVnYWN5VmFyczogKFxuICAgICdkZWZhdWx0LW1lZGlhJzogJ2RlZmF1bHQgbWVkaWEnLFxuICAgICdkZWZhdWx0LWZlYXR1cmUnOiAnZGVmYXVsdCBmZWF0dXJlJyxcbiAgICAnZm9yY2UtbWVkaWEtYWxsJzogJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJyxcbiAgICAndG8tZW1zJzogJ3RvIGVtcycsXG4gICAgJ3Jlc29sdXRpb25zJzogJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycsXG4gICAgJ25vLXF1ZXJpZXMnOiAnbm8gcXVlcmllcycsXG4gICAgJ25vLXF1ZXJ5LWZhbGxiYWNrcyc6ICdubyBxdWVyeSBmYWxsYmFja3MnLFxuICAgICdiYXNlLWZvbnQtc2l6ZSc6ICdiYXNlIGZvbnQgc2l6ZScsXG4gICAgJ2xlZ2FjeS1zeW50YXgnOiAnbGVnYWN5IHN5bnRheCdcbiAgKTtcblxuICBAZWFjaCAkbGVnYWN5LCAkbmV3IGluICRsZWdhY3lWYXJzIHtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC0nICsgJGxlZ2FjeSkge1xuICAgICAgQHdhcm4gXCJJbiBvcmRlciB0byBhdm9pZCB2YXJpYWJsZSBuYW1zcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBjaGFuZ2Ugc2V0dGluZ3MgZm9yIEJyZWFrcG9pbnQuIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnQtI3skbGVnYWN5fToge3tzZXR0aW5nfX1gIHRvIGBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnI3skbmV3fScsIHt7c2V0dGluZ319KWAuIFZhcmlhYmxlIHNldHRpbmdzLCBhcyB3ZWxsIGFzIHRoaXMgd2FybmluZyB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIlxuICAgIH1cbiAgfTtcblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gSGFuZCBjb3JyZWN0IGVhY2ggc2V0dGluZ1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdkZWZhdWx0IG1lZGlhJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBmZWF0dXJlJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdkZWZhdWx0IGZlYXR1cmUnLCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCcpIGFuZCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwgIT0gYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScsICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtdG8tZW1zJykgYW5kICRicmVha3BvaW50LXRvLWVtcyAhPSBicmVha3BvaW50LWdldCgndG8gZW1zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0byBlbXMnLCAkYnJlYWtwb2ludC10by1lbXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXJlc29sdXRpb25zJykgYW5kICRicmVha3BvaW50LXJlc29sdXRpb25zICE9IGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycsICRicmVha3BvaW50LXJlc29sdXRpb25zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1uby1xdWVyaWVzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJpZXMgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ25vIHF1ZXJpZXMnLCAkYnJlYWtwb2ludC1uby1xdWVyaWVzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycsICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtYmFzZS1mb250LXNpemUnKSBhbmQgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUgIT0gYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdiYXNlIGZvbnQgc2l6ZScsICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4JykgYW5kICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXggIT0gYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2xlZ2FjeSBzeW50YXgnLCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4KTtcbiAgfVxufSIsIiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6IGg1YnAuY29tL3ZcbiovXG5cbi52aXN1YWxseWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xufVxuXG4vKlxuKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnQgdG8gYmUgZm9jdXNhYmxlXG4qIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmQ6IGg1YnAuY29tL3BcbiovXG5cbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6YWN0aXZlLFxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTpmb2N1cyB7XG4gIGNsaXA6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG59XG4iLCJcbiIsIiRkYXJrLWdyZXktY29sb3I6ICMzMzMzMzM7XG4kZ3JleS1jb2xvcjogIzQ4NDg0ODtcbiRtYWdlbnRhLWNvbG9yOiAjQkEyRThCO1xuJGJsdWUtY29sb3I6ICMyQkFERkU7XG4kd2hpdGUtY29sb3I6ICNmZWZlZmU7XG4iLCJcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnaWNvbnMnO1xuICBzcmM6ICB1cmwoJy4uL2ZvbnRzL2ljb25zL2ljb25zLmVvdD9vbWhrbTknKTtcbiAgc3JjOiAgdXJsKCcuLi9mb250cy9pY29ucy9pY29ucy5lb3Q/b21oa205I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgIHVybCgnLi4vZm9udHMvaWNvbnMvaWNvbnMudHRmP29taGttOScpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICB1cmwoJy4uL2ZvbnRzL2ljb25zL2ljb25zLndvZmY/b21oa205JykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi9mb250cy9pY29ucy9pY29ucy5zdmc/b21oa205I2ljb25zJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IGJsb2NrO1xufVxuXG5bY2xhc3NePVwiaWNvbi1cIl0sIFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICBmb250LWZhbWlseTogJ2ljb25zJyAhaW1wb3J0YW50O1xuICBzcGVhazogbmV2ZXI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcblxuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uLWEtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDBcIjtcbn1cbi5pY29uLWEtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMVwiO1xufVxuLmljb24tbGlrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwMlwiO1xufVxuLmljb24taW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAzXCI7XG59XG4uaWNvbi10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA0XCI7XG59XG4iLCJodG1sLCBib2R5IHtcbiAgZm9udC1mYW1pbHk6ICdBcmlhbCc7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiM1MDUwNTA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbiIsIiIsIiIsIiIsIiIsIiIsImJvZHl7XG5cdGNvbG9yOiAjNGQ0ZDRkO1xuXHRmb250LWZhbWlseTogJ0ZhdW5hIE9uZSc7XG5cbn1cblxuLndyYXBwZXJ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXgtd2lkdGg6IDEwODBweDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHBhZGRpbmc6IDAgMjBweDtcbn1cblxuYXtcblx0dHJhbnNpdGlvbjogYWxsIDAuMnM7XG5cblx0Jjpob3Zlcntcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Y29sb3I6ICNhNGRkYTQ7XG5cdH1cbn1cblxuLmFycm93LWRvd257XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xuXG5cdHNwYW57XG5cdFx0Y29sb3I6ICNlZmIzNWI7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHR9XG5cbn1cblxuXG4uYnRuX21vcmV7XG5cdGNvbG9yOiAjMDAwO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRmb250LWZhbWlseTogJ1NwYXJ0YW4nO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Zm9udC1zaXplOiAyMHB4OyBcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2E0ZGRhNDtcblxufVxuXG4ubWFzdGhlYWR7XG5cdGJhY2tncm91bmQ6IGJsdWU7XG5cdHBhZGRpbmc6IDIwcHggMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9wcm9kdWN0by0xLmpwZWcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuXG5cdC5icmRye1xuXHRcdGJhY2tncm91bmQ6ICNGRkY7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxNDBweDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHotaW5kZXg6IDk7XG5cdFx0Ym9yZGVyLXRvcDogNHB4IHNvbGlkICNhNGRkYTQ7XG5cblx0fVxuXG5cdCYubm9zb3Ryb3N7XG5cdFx0cGFkZGluZy1ib3R0b206IDYwcHg7XG5cdFx0Ym9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNlZmIzNWI7XG5cdFx0YmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmFubmVyMi5qcGVnJykgYm90dG9tIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuXG5cdFx0Jjo6YWZ0ZXJ7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kOiByZ2IoMCwyMSw2Myk7XG5cdFx0XHRiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsMjEsNjMsMSkgMCUsIHJnYmEoMCwyMSw2MywwLjU5ODQ3Njg5MDc1NjMwMjUpIDEwMCUpO1xuXHRcdFx0YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgwLDIxLDYzLDEpIDAlLCByZ2JhKDAsMjEsNjMsMC41OTg0NzY4OTA3NTYzMDI1KSAxMDAlKTtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsMjEsNjMsMSkgMCUsIHJnYmEoMCwyMSw2MywwLjU5ODQ3Njg5MDc1NjMwMjUpIDEwMCUpO1xuXHRcdFx0ZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj1cIiMwMDE1M2ZcIixlbmRDb2xvcnN0cj1cIiMwMDE1M2ZcIixHcmFkaWVudFR5cGU9MSk7XG5cdFx0fVxuXG5cdFx0LndyYXBwZXJ7XG5cblx0XHRcdC5jb250ZW50e1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAyNjBweDtcblxuXHRcdFx0XHRwe1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYucHJvZHVjdHtcblx0XHRoZWlnaHQ6IDgwMHB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9oZWFkZXItYmcuanBlZycpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0YmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcblxuXHRcdCY6OmFmdGVye1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0YmFja2dyb3VuZDogcmdiKDM2LDg1LDg2KTtcblx0XHRcdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgzNiw4NSw4NiwxKSAwJSwgcmdiYSgzNiw4NSw4NiwwLjYwMTI3ODAxMTIwNDQ4MTgpIDEwMCUpO1xuXHRcdFx0YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDM2LDg1LDg2LDEpIDAlLCByZ2JhKDM2LDg1LDg2LDAuNjAxMjc4MDExMjA0NDgxOCkgMTAwJSk7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDM2LDg1LDg2LDEpIDAlLCByZ2JhKDM2LDg1LDg2LDAuNjAxMjc4MDExMjA0NDgxOCkgMTAwJSk7XG5cdFx0XHRmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPVwiIzI0NTU1NlwiLGVuZENvbG9yc3RyPVwiIzI0NTU1NlwiLEdyYWRpZW50VHlwZT0xKTtcblx0XHR9XG5cblx0XHQud3JhcHBlcntcblxuXHRcdFx0LmltZ19ib3h7XG5cdFx0XHRcdG1heC13aWR0aDogNDAwcHg7XG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdHotaW5kZXg6IDk5OTk7XG5cdFx0XHRcdGNsZWFyOiBib3RoO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXG5cdFx0XHRcdGltZ3tcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCY6OmFmdGVye1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0YmFja2dyb3VuZDogcmdiKDAsMjEsNjMpO1xuXHRcdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLDIxLDYzLDEpIDAlLCByZ2JhKDAsMjEsNjMsMC41OTg0NzY4OTA3NTYzMDI1KSAxMDAlKTtcblx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwyMSw2MywxKSAwJSwgcmdiYSgwLDIxLDYzLDAuNTk4NDc2ODkwNzU2MzAyNSkgMTAwJSk7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLDIxLDYzLDEpIDAlLCByZ2JhKDAsMjEsNjMsMC41OTg0NzY4OTA3NTYzMDI1KSAxMDAlKTtcblx0XHRmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPVwiIzAwMTUzZlwiLGVuZENvbG9yc3RyPVwiIzAwMTUzZlwiLEdyYWRpZW50VHlwZT0xKTtcblx0fVxuXG5cdC53cmFwcGVye1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiA5O1xuXG5cblx0XHQubWFpbl9uYXZ7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0LmxvZ297XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMjAwcHg7XG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0bWFyZ2luOiAwO1xuXG5cblx0XHRcdFx0aW1ne1xuXG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5idG5fbWVudXtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0Lm1lbnV7XG5cdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDMwcHg7XG5cdFx0XHRcdHJpZ2h0OiAxMHB4O1xuXG5cdFx0XHRcdGxpe1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRtYXJnaW46IDAgOHB4O1xuXG5cdFx0XHRcdFx0YXtcblx0XHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnU3BhcnRhbic7XG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXHRcdH1cblxuXG5cdFx0LmNvbnRlbnR7XG5cdFx0XHRtYXJnaW4tdG9wOiA4MHB4O1xuXG5cdFx0XHQudGl0bGV7XG5cdFx0XHRcdGZvbnQtc2l6ZTogNDVweDtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICdTcGFydGFuJztcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cblx0XHRcdFx0c3Bhbntcblx0XHRcdFx0XHRjb2xvcjogI2E0ZGRhNDtcblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cblx0XHRcdHB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjVweDtcblx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cblx0XHRcdFx0c3Bhbntcblx0XHRcdFx0XHRjb2xvcjogI2E0ZGRhNDtcblxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHR9XG5cblx0XHQuaW1nX2JveHtcblx0XHRcdG1heC13aWR0aDogNTYwcHg7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdHotaW5kZXg6IDk5OTk7XG5cdFx0XHRjbGVhcjogYm90aDtcblxuXHRcdFx0aW1ne1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmJ0bl9tb3Jle1xuXHRcdFx0Y29sb3I6ICNGRkY7XG5cblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGNvbG9yOiAjZWViMjYyO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG59XG5cblxuLmZlYXR1cmVze1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmctYm90dG9tOiA4MHB4O1xuXG5cdC53cmFwcGVye1xuXG5cdFx0LnR4dHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDYwcHg7XG5cblx0XHRcdGgze1xuXHRcdFx0XHRmb250LWZhbWlseTogJ1NwYXJ0YW4nO1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDE1cHggMDtcblx0XHRcdFx0Y29sb3I6ICMwMDA7XG5cblx0XHRcdFx0c3Bhbntcblx0XHRcdFx0XHRjb2xvcjogIzZEQTM4RDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRwe1xuXHRcdFx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnJvd3tcblxuXHRcdFx0LmZlYXR1cmV7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDYwcHg7XG5cblx0XHRcdFx0Lmljb257XG5cblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjRzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRcdFx0aW1ne1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Jjpob3ZlcntcblxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGg1e1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnU3BhcnRhbic7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdFx0Y29sb3I6ICNhNGRkYTQ7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMjVweDtcblxuXHRcdFx0XHRcdCYuYmx1ZXtcblx0XHRcdFx0XHRcdGNvbG9yOiAjMDAyZTYwOyBcblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cHtcblx0XHRcdFx0XHRmb250LXNpemU6IDE1cHg7XG5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5idG5fbW9yZXtcblxuXHRcdH1cblx0fVxufVxuXG5cblxuLmFib3V0e1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwYWRkaW5nOiAxMDBweCAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQuZmxvYXRfcHJvZHN7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDMyMHB4O1xuXHRcdGhlaWdodDogNTI1cHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRcblx0XHRcblx0XHR6LWluZGV4OiA5OTk7XG5cblx0XHQmLnJpZ2h0e1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvcHJvZDIucG5nJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJTtcblx0XHRcdHRvcDogLTIxNXB4O1xuXHRcdH1cblxuXHRcdCYubGVmdHtcblx0XHRcdGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3Byb2QyMi5wbmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG5cdFx0XHR0b3A6IDI4MHB4O1xuXHRcdH1cblx0fVxuXG5cdCY6OmFmdGVye1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogNTI1cHg7XG5cdFx0YmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmctZ3JheS5wbmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0fVxuXG5cdCYucHJvZHVjdHN7XG5cdFx0YmFja2dyb3VuZDogI0ZGRjtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQmOjphZnRlcntcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogNTI1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iZy1ibHVlLnBuZycpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHR9XG5cblx0XHQuYnRuX21vcmV7XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHR9XG5cblx0XHQudHh0e1xuXG5cdFx0XHRoM3tcblx0XHRcdFx0Y29sb3I6ICNGRkYgIWltcG9ydGFudDtcblxuXHRcdFx0XHRzcGFue1xuXHRcdFx0XHRcdGNvbG9yOiAjNmRhMzhkICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cHtcblx0XHRcdFx0Y29sb3I6ICNGRkYgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC53cmFwcGVye1xuXHRcdHotaW5kZXg6IDk7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0LnR4dHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWF4LXdpZHRoOiA3MjBweDtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXG5cdFx0XHRoM3tcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICdTcGFydGFuJztcblx0XHRcdFx0Zm9udC1zaXplOiAzMHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0bWFyZ2luOiAwIDAgMTVweCAwO1xuXHRcdFx0XHRjb2xvcjogIzAwMmU2MDtcblx0XHRcdFx0cGFkZGluZzogMCA4MHB4O1xuXG5cdFx0XHRcdHNwYW57XG5cdFx0XHRcdFx0Y29sb3I6ICNlZmIzNWI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cHtcblx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRjb2xvcjogIzAwMmU2MDtcblxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5hcnJvd3tcblxuXHRcdH1cblxuXHRcdC52aWRlb19ib3h7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbjogNDBweCBhdXRvO1xuXG5cdFx0fVxuXG5cdFx0LmJvdF90eHR7XG5cdFx0XHRwYWRkaW5nOiAwIDUwcHg7XG5cdFx0fVxuXG5cdFx0LmJpb3tcblx0XHRcdG1hcmdpbjogODBweCAwO1xuXG5cdFx0XHQucm93e1xuXG5cdFx0XHRcdC5jb2xfYWx0e1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmltZ3tcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRcdFx0aW1ne1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnR4dHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2IoMCwwLDk5KTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgwLDAsOTksMSkgMCUsIHJnYmEoMjUsNzQsMTM5LDEpIDEwMCUpO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsMCw5OSwxKSAwJSwgcmdiYSgyNSw3NCwxMzksMSkgMTAwJSk7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsMCw5OSwxKSAwJSwgcmdiYSgyNSw3NCwxMzksMSkgMTAwJSk7XG5cdFx0XHRcdFx0ZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj1cIiMwMDAwNjNcIixlbmRDb2xvcnN0cj1cIiMxOTRhOGJcIixHcmFkaWVudFR5cGU9MSk7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdFx0XHRwYWRkaW5nOiA4OHB4IDQwcHg7XG5cblx0XHRcdFx0XHRoNHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZWZiMzViO1xuXHRcdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnU3BhcnRhbic7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHB7XG5cdFx0XHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdFx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5idG5fbW9yZXtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdFx0XHRcdGNvbG9yOiAjRkZGO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGRkY7XG5cdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiAwLjNzIGFsbDtcblxuXHRcdFx0XHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICNlZWIyNjI7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogI2VlYjI2MjtcblxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cHtcblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblxuXHRcdH1cblxuXHRcdC5icmFuZHN7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0YmFja2dyb3VuZDogIzU1NTtcblx0XHRcdG1hcmdpbjogNjBweCAwO1xuXG5cdFx0XHRmaWd1cmV7XG5cblx0XHRcdFx0aW1ne1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdFx0LnF1b3Rlc3tcblxuXHRcdFx0Lml0ZW17XG5cblx0XHRcdFx0aDR7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdGYXVuYSc7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAzNnB4O1xuXHRcdFx0XHRcdGNvbG9yOiAjMDAyZTYwO1xuXHRcdFx0XHRcdG1hcmdpbjogMCAwIDE1cHggMDtcblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cHtcblx0XHRcdFx0XHRmb250LWZhbWlseTogJ1J1YmlrJztcblx0XHRcdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRcdFx0Y29sb3I6ICMwMDJlNjA7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRcdFx0Ji5qb2J7XG5cdFx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblxuXHRcdH1cblx0fVxufVxuXG4ubWFwe1xuXHRiYWNrZ3JvdW5kOiAjZWZiMzViO1xuXHRwYWRkaW5nOiA1MHB4IDAgMCAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblxuXHQmOjphZnRlcntcblx0XHRjb250ZW50OiAnJztcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogNjAwcHg7XG5cdFx0aGVpZ2h0OiAzMDBweDtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9wcm9kcy5wbmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogOTBweDtcblx0XHRyaWdodDogMDtcblx0fVxuXG5cdCYuYmx1ZXtcblx0XHRiYWNrZ3JvdW5kOiAjYWFiOWNhO1xuXG5cdFx0LmJyZHJ7XG5cblx0XHRcdGJhY2tncm91bmQ6IHJnYigwLDIxLDYzKTtcblx0XHRcdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsMjEsNjMsMSkgMCUsIHJnYmEoODUsMTE2LDE0OSwxKSAxMDAlKTtcblx0XHRcdGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsMjEsNjMsMSkgMCUsIHJnYmEoODUsMTE2LDE0OSwxKSAxMDAlKTtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgwLDIxLDYzLDEpIDAlLCByZ2JhKDg1LDExNiwxNDksMSkgMTAwJSk7XG5cdFx0XHRmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPVwiIzAwMTUzZlwiLGVuZENvbG9yc3RyPVwiIzU1NzQ5NVwiLEdyYWRpZW50VHlwZT0xKTtcblx0XHR9XG5cdH1cblxuXHQmLmdyZWVue1xuXHRcdGJhY2tncm91bmQ6ICNhNGRkYTQ7XG5cdH1cblxuXHQuYnJkcntcblx0XHRiYWNrZ3JvdW5kOiAjMDAyMzQyO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMjMwcHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMDtcblx0XHR6LWluZGV4OiA5O1xuXG5cdH1cblxuXHQud3JhcHBlcntcblx0XHR6LWluZGV4OiA5OTk5O1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdGg0e1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdTcGFydGFuJztcblx0XHRcdGZvbnQtc2l6ZTogMzZweDtcblx0XHRcdGNvbG9yOiAjMDAyZTYwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bWFyZ2luOiAxMHB4IDAgMjBweCAwO1xuXHRcdH1cblxuXHRcdGg1e1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdTcGFydGFuJztcblx0XHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRcdGNvbG9yOiAjRkZGO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdH1cblxuXHRcdHB7XG5cdFx0XHRmb250LWZhbWlseTogJ1J1YmlrJztcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdGNvbG9yOiAjMDAyZTYwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1heC13aWR0aDogOTAwcHg7XG5cdFx0fVxuXG5cdFx0Lm1hcF9pbWd7XG5cdFx0XHRtYXJnaW46IDIwcHggMCAwIDA7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1heC13aWR0aDogNjAwcHg7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHR6LWluZGV4OiA5OTk7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdGltZ3tcblxuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZm9vdGVye1xuXHRiYWNrZ3JvdW5kOiAjMDAyMzQyO1xuXHRwYWRkaW5nOiA2MHB4IDAgMTVweCAwO1xuXG5cdC53cmFwcGVye1xuXG5cdFx0LmNvbm5lY3R7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA2MHB4O1xuXG5cdFx0XHRoNHtcblx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAnU3BhcnRhbic7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHR9XG5cblx0XHRcdC5zb2NpYWx7XG5cdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0XHRsaXtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0d2lkdGg6IDMwcHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAzMHB4O1xuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNGRkY7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTBweDtcblx0XHRcdFx0XHRtYXJnaW46IDAgNXB4O1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMjhweDtcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zcztcblxuXHRcdFx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjZWViMjYyO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjZWViMjYyO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHNwYW57XG5cdFx0XHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQucm93e1xuXG5cdFx0XHQudGl0bGV7XG5cdFx0XHRcdGNvbG9yOiAjNmRhMzhkO1xuXHRcdFx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAnUnViaWsnO1xuXHRcdFx0XHRtYXJnaW46IDAgMCAxMHB4IDA7XG5cblx0XHRcdH1cblxuXHRcdFx0LmZvb3Rlcl9uYXZ7XG5cdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0XHRsaXtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdSdWJpayc7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0XHRcdFx0YXtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdFx0XHRcdGNvbG9yOiAjRkZGO1xuXHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdSdWJpayc7XG5cdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuXHRcdFx0XHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICNlZWIyNjI7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5mb3JtX2NvbnRhY3R7XG5cblx0XHRcdFx0aW5wdXR7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0bWFyZ2luOiA4cHggMDtcblx0XHRcdFx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICMwMDJlNjA7XG5cdFx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnUnViaWsnO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblxuXG5cdFx0XHRcdFx0Jjo6cGxhY2Vob2xkZXIgeyBcblx0XHRcdFx0XHQgIGNvbG9yOiAjRkZGO1xuXHRcdFx0XHRcdCAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IFxuXHRcdFx0XHRcdCAgY29sb3I6ICNGRkY7XG5cdFx0XHRcdFx0ICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IFxuXHRcdFx0XHRcdCAgY29sb3I6ICNGRkY7XG5cdFx0XHRcdFx0ICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdH1cblxuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0ZXh0YXJlYXtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRtYXJnaW46IDhweCAwO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHggMTVweDtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogIzAwMmU2MDtcblx0XHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdSdWJpayc7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0XHRcdHJlc2l6ZTogbm9uZTtcblx0XHRcdFx0XHRoZWlnaHQ6IDEyMHB4O1xuXG5cdFx0XHRcdFx0Jjo6cGxhY2Vob2xkZXIge1xuXHRcdFx0XHRcdCAgY29sb3I6ICNGRkY7XG5cdFx0XHRcdFx0ICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRcdFx0XHQgIGNvbG9yOiAjRkZGO1xuXHRcdFx0XHRcdCAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBcblx0XHRcdFx0XHQgIGNvbG9yOiAjRkZGO1xuXHRcdFx0XHRcdCAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5zZW5kX2J0bntcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHRcdFx0XHRmb250LWZhbWlseTogJ1J1YmlrJztcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdFx0XHRwYWRkaW5nOiAxMHB4IDAgM3B4IDA7XG5cdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZGRjtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogMC4zcyBhbGw7XG5cblx0XHRcdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNlZWIyNjI7XG5cdFx0XHRcdFx0XHRib3JkZXItY29sb3I6ICNlZWIyNjI7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0c3Bhbntcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRcdFx0XHRcdGNvbG9yOiAjNmRhMzhkO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0cmlnaHQ6IC0yMHB4O1xuXHRcdFx0XHRcdFx0dG9wOiAxNXB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5sb2dvX2FsdHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHdpZHRoOiAyMDBweDtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdG1hcmdpbi10b3A6IDUwcHg7XG5cblx0XHRcdGltZ3tcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogYXV0bztcblxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jcntcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtZmFtaWx5OiAnUnViaWsnO1xuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0Y29sb3I6ICMwMDJlNjA7XG5cdFx0XHRtYXJnaW4tdG9wOiAxNXB4O1xuXHRcdH1cblx0fVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNzYwcHgpe1xuXG5cdC5tYXB7XG5cblx0XHQmOjphZnRlcntcblx0XHRcdHJpZ2h0OiAtMTUwcHg7XG5cdFx0fVxuXHR9XG59XG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQ4MHB4KXtcblxuXHQuYWJvdXR7XG5cblx0XHQuZmxvYXRfcHJvZHN7XG5cblx0XHRcdCYucmlnaHR7XG5cdFx0XHRcdHJpZ2h0OiAtMTIwcHg7XG5cdFx0XHR9XG5cblx0XHRcdCYubGVmdHtcblx0XHRcdFx0bGVmdDogLTEyMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5tYXB7XG5cblxuXHRcdCY6OmFmdGVye1xuXHRcdFx0cmlnaHQ6IC0yNTBweDtcblx0XHR9XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIzMHB4KXtcblxuXHQuYWJvdXR7XG5cblx0XHQuZmxvYXRfcHJvZHN7XG5cblx0XHRcdCYucmlnaHR7XG5cblx0XHRcdFx0cmlnaHQ6IC0yMDBweDtcblx0XHRcdH1cblxuXHRcdFx0Ji5sZWZ0e1xuXG5cdFx0XHRcdGxlZnQ6IC0yMDBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQubWFwe1xuXG5cblx0XHQmOjphZnRlcntcblxuXHRcdFx0cmlnaHQ6IC0zMjBweDtcblx0XHR9XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEyMHB4KXtcblxuXHQubWFwe1xuXG5cblx0XHQmOjphZnRlcntcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjhweCl7XG5cblx0LmFib3V0e1xuXG5cdFx0LmZsb2F0X3Byb2Rze1xuXG5cdFx0XHQmLnJpZ2h0e1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmxlZnR7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXtcblxuXHQuYnRuX21vcmV7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHR9XG5cblx0Lm1hc3RoZWFke1xuXG5cdFx0Ji5wcm9kdWN0e1xuXHRcdFx0aGVpZ2h0OiA5MzVweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0LndyYXBwZXJ7XG5cblx0XHRcdFx0LmltZ19ib3h7XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiAzNDBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cmFwcGVye1xuXG5cdFx0XHQubWFpbl9uYXZ7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXG5cdFx0XHRcdC5sb2dve1xuXHRcdFx0XHRcdHdpZHRoOiAxMjVweDtcblx0XHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmJ0bl9tZW51e1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21lbnUucG5nJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRcdFx0XHR3aWR0aDogNDBweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDMwcHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHRvcDogMTBweDtcblx0XHRcdFx0XHRyaWdodDogMHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Lm1lbnV7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHRcdHRvcDogMjBweDtcblxuXHRcdFx0XHRcdGJvcmRlci10b3A6IDNweCBzb2xpZCAjRkZGO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICMwMjAyNDI7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cblx0XHRcdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiAwLjdzIGFsbDtcblxuXHRcdFx0XHRcdCYub3Blbntcblx0XHRcdFx0XHRcdGhlaWdodDogMjUwcHg7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bGl7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdG1hcmdpbjogMjRweCAwO1xuXG5cdFx0XHRcdFx0XHRhe1xuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDVweCAwO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblxuXHRcdFx0LmNvbnRlbnR7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDEwMHB4O1xuXG5cdFx0XHRcdC50aXRsZXtcblx0XHRcdFx0XHRmb250LXNpemU6IDM2cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRwe1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRcdFx0fVx0XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblxuXHQuZmVhdHVyZXN7XG5cblx0XHQud3JhcHBlcntcblxuXHRcdFx0LnR4dHtcblx0XHRcdFx0bWFyZ2luLXRvcDogNzBweDtcblx0XHRcdH1cblxuXHRcdFx0LnJvd3tcblxuXHRcdFx0XHQuZmVhdHVyZXtcblxuXHRcdFx0XHRcdC5pY29ue1xuXHRcdFx0XHRcdFx0d2lkdGg6IDcwJTtcblx0XHRcdFx0XHRcdG1hcmdpbjogMjBweCBhdXRvO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGg1e1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxOXB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuYnRuX21vcmV7XG5cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXG5cblx0LmFib3V0e1xuXHRcdHBhZGRpbmc6IDcwcHggMDtcblxuXHRcdC5mbG9hdF9wcm9kc3tcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0LndyYXBwZXJ7XG5cblx0XHRcdC50eHR7XG5cblx0XHRcdFx0aDN7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyNnB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cHtcblx0XHRcdFx0XHRmb250LXNpemU6IDE4cHg7XG5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuYmlve1xuXG5cdFx0XHRcdC5yb3d7XG5cblx0XHRcdFx0XHQuaW1ne1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cblx0XHRcdFx0XHRcdGltZ3tcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRwe1xuXHRcdFx0XHRmb250LXNpemU6IDE4cHg7XG5cblx0XHRcdH1cblxuXHRcdFx0LnF1b3Rlc3tcblxuXHRcdFx0XHQuaXRlbXtcblxuXHRcdFx0XHRcdGg0e1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAyOHB4O1xuXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5tYXB7XG5cblx0XHQmOjphZnRlcntcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQmLmJsdWV7XG5cdFx0XHRwYWRkaW5nOiA2NXB4IDAgMCAwO1xuXHRcdH1cblxuXHRcdC5icmRye1xuXHRcdFx0aGVpZ2h0OiAxNzVweDtcblxuXHRcdH1cblxuXHRcdC53cmFwcGVye1xuXG5cdFx0XHRoNHtcblx0XHRcdFx0Zm9udC1zaXplOiAzMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRoNXtcblx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5mb290ZXJ7XG5cblx0XHQud3JhcHBlcntcblxuXHRcdFx0LmNvbm5lY3R7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cblx0XHRcdFx0aDR7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdH1cblxuXHRcdFx0LnJvd3tcblxuXHRcdFx0XHQuZm9vdGVyX25hdntcblx0XHRcdFx0XHRtYXJnaW46IDEwcHggMCAwIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuZm9ybV9jb250YWN0e1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDUwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiIsIlxuLnByb2R1Y3RzX2ZlYXR1cmVze1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbi10b3A6IDExMHB4O1xuXG5cdC53cmFwcGVye1xuXG5cdFx0LmJ0bl9tb3Jle1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luOiAzMHB4IDAgMzBweCAwO1xuXHRcdH1cblxuXHRcdGgze1xuXHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdTcGFydGFuJztcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cdFx0fVxuXG5cdFx0LnNpemVze1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXgtd2lkdGg6IDU1MHB4O1xuXHRcdFx0bWFyZ2luOiAwIGF1dG8gNTVweCBhdXRvO1xuXG5cdFx0XHQubm90ZXtcblx0XHRcdFx0bWFyZ2luLXRvcDogMzBweDtcblx0XHRcdH1cblxuXHRcdFx0Zm9ybXtcblxuXHRcdFx0XHQuaXRlbXtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdFx0XHRwe1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdSdWJpayc7XG5cdFx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0c2VsZWN0e1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNhNGRkYTQ7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiA4cHggMHB4IDhweCAyNXB4O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0XHRcdFx0b3V0bGluZTogbm9uZTtcblxuXHRcdFx0XHRcdFx0b3B0aW9ue1xuXHRcdFx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG59XG5cblxuLnByb2R1Y3RzX2dhbGxlcnl7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luOiAyMHB4IDA7XG5cdHBhZGRpbmc6IDUwcHggMDtcblxuXHQud3JhcHBlcntcblxuXHRcdC5wcm9kdWN0c19saXN0e1xuXHRcdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRcdGg0e1xuXHRcdFx0XHRmb250LWZhbWlseTogJ1NwYXJ0YW4nO1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRcdGNvbG9yOiAjMDAyZTYwO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0bWFyZ2luLXRvcDogNTBweDtcblx0XHRcdH1cblxuXG5cblx0XHR9XG5cblx0XHQudGl0bGV7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdTcGFydGFuJztcblx0XHRcdGZvbnQtc2l6ZTogMjVweDtcblx0XHRcdGNvbG9yOiAjZWZiMzViO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdHNwYW57XG5cdFx0XHRcdGNvbG9yOiAjMDAyZTYwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHB7XG5cdFx0XHRkaXNwbGF5OiBibG9jazsgXG5cdFx0XHRmb250LWZhbWlseTogJ0ZhdW5hIE9uZSc7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRjb2xvcjogIzAwMmU2MDtcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiA2MDBweDtcblxuXHRcdH1cblxuXHRcdC5nYWxsZXJ5e1xuXHRcdFx0bWFyZ2luLXRvcDogNDBweDtcblxuXHRcdFx0LnJvd3tcblxuXHRcdFx0XHQuaW1ne1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGhlaWdodDogYXV0bztcblxuXHRcdFx0XHRcdGltZ3tcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpe1xuXG5cblx0LnByb2R1Y3RzX2ZlYXR1cmVze1xuXHRcdC8qdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbi10b3A6IDMwcHg7Ki9cblxuXHRcdC53cmFwcGVye1xuXG5cdFx0XHQuYnRuX21vcmV7XG5cdFx0XHRcdC8qZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IDMwcHggMCAzMHB4IDA7Ki9cblx0XHRcdH1cblxuXHRcdFx0aDN7XG5cdFx0XHRcdC8qZm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRmb250LWZhbWlseTogJ1NwYXJ0YW4nO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDsqL1xuXHRcdFx0fVxuXG5cdFx0XHQuc2l6ZXN7XG5cdFx0XHRcdC8qZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1heC13aWR0aDogNTUwcHg7XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvIDU1cHggYXV0bzsqL1xuXG5cdFx0XHRcdGZvcm17XG5cblx0XHRcdFx0XHQuaXRlbXtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHRcdFx0cHtcblx0XHRcdFx0XHRcdFx0Lypmb250LXNpemU6IDE1cHg7XG5cdFx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnUnViaWsnO1xuXHRcdFx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDsqL1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRzZWxlY3R7XG5cdFx0XHRcdFx0XHRcdC8qZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjYTRkZGE0O1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiA4cHggMHB4IDhweCAyNXB4O1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRcdFx0XHRcdG91dGxpbmU6IG5vbmU7Ki9cblx0XHRcdFx0XHRcdFx0cGFkZGluZzogOHB4IDEwcHg7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cblx0XHRcdFx0XHRcdFx0b3B0aW9ue1xuXHRcdFx0XHRcdFx0XHRcdC8qdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsqL1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXG5cdC5wcm9kdWN0c19nYWxsZXJ5e1xuXHRcdC8qdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbjogMjBweCAwO1xuXHRcdHBhZGRpbmc6IDUwcHggMDsqL1xuXG5cdFx0LndyYXBwZXJ7XG5cblx0XHRcdC50aXRsZXtcblx0XHRcdFx0Lyp0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRmb250LWZhbWlseTogJ1NwYXJ0YW4nO1xuXHRcdFx0XHRmb250LXNpemU6IDI1cHg7XG5cdFx0XHRcdGNvbG9yOiAjZWZiMzViO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDsqL1xuXHRcdFx0XHRmb250LXNpemU6IDIycHg7XG5cblx0XHRcdFx0c3Bhbntcblx0XHRcdFx0XHQvKmNvbG9yOiAjMDAyZTYwOyovXG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cHtcblx0XHRcdFx0LypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IFxuXHRcdFx0XHRmb250LWZhbWlseTogJ0ZhdW5hJztcblx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRjb2xvcjogIzAwMmU2MDtcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdG1heC13aWR0aDogNjAwcHg7Ki9cblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXG5cdFx0XHR9XG5cblx0XHRcdC5nYWxsZXJ5e1xuXHRcdFx0XHQvKm1hcmdpbi10b3A6IDQwcHg7Ki9cblx0XHRcdFx0bWFyZ2luLXRvcDogNjBweDtcblxuXHRcdFx0XHQucm93e1xuXG5cdFx0XHRcdFx0LmltZ3tcblx0XHRcdFx0XHRcdC8qZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdGhlaWdodDogMTg1cHg7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjY2NjOyovXG5cdFx0XHRcdFx0XHR3aWR0aDogODAlO1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG59IiwiXG4ucGhpbG97XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZzogODVweCAwIDYwcHggMDtcblxuXHQud3JhcHBlcntcblxuXHRcdC50aXRsZXtcblx0XHRcdGZvbnQtZmFtaWx5OiAnU3BhcnRhbic7XG5cdFx0XHRmb250LXNpemU6IDMwcHg7XG5cdFx0XHRjb2xvcjogI2VmYjM1Yjtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1MHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0fVxuXG5cdFx0LnJvd3tcblxuXHRcdFx0aDR7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAnU3BhcnRhbic7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdFx0Y29sb3I6ICMwMDJlNjA7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxOHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRwe1xuXHRcdFx0XHRmb250LWZhbWlseTogJ1J1YmlrJztcblx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0XHRwYWRkaW5nOiAwIDUwcHg7XG5cdFx0XHR9XG5cblx0XHRcdHVse1xuXHRcdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0bGl7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdSdWJpayc7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnR4dF9ib3R0b217XG5cdFx0XHRtYXJnaW4tdG9wOiA4MHB4O1xuXG5cdFx0XHRoNHtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICdTcGFydGFuJztcblx0XHRcdFx0Zm9udC1zaXplOiAzMHB4O1xuXHRcdFx0XHRjb2xvcjogI2VmYjM1Yjtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cblx0XHRcdH1cblxuXHRcdFx0cHtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICdGYXVuYSBPbmUnO1xuXHRcdFx0XHRjb2xvcjogIzAwMmU2MDtcblx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRwYWRkaW5nOiAwIDYwcHg7XG5cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmltZ19nYWxsZXJ5e1xuXHRwYWRkaW5nOiA1MHB4IDAgODBweCAwO1xuXHRiYWNrZ3JvdW5kOiByZ2IoMCwyMSw2Myk7XG5cdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsMjEsNjMsMSkgMCUsIHJnYmEoODUsMTE2LDE0OSwxKSAxMDAlKTtcblx0YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwyMSw2MywxKSAwJSwgcmdiYSg4NSwxMTYsMTQ5LDEpIDEwMCUpO1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwyMSw2MywxKSAwJSwgcmdiYSg4NSwxMTYsMTQ5LDEpIDEwMCUpO1xuXHRmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPVwiIzAwMTUzZlwiLGVuZENvbG9yc3RyPVwiIzU1NzQ5NVwiLEdyYWRpZW50VHlwZT0xKTtcblxuXHQud3JhcHBlcntcblxuXHRcdC5jYXJvdXNlbHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWF4LXdpZHRoOiA4MzVweDtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdH1cblx0fVxufVxuXG5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpe1xuXG5cdC5waGlsb3tcblxuXHRcdC53cmFwcGVye1xuXG5cdFx0XHQucm93e1xuXG5cdFx0XHRcdHB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNTBweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHVse1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQudHh0X2JvdHRvbXtcblxuXHRcdFx0XHRwe1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmltZ19nYWxsZXJ5e1xuXHRcdHBhZGRpbmc6IDgwcHggMDtcblxuXHRcdC53cmFwcGVye1xuXG5cdFx0XHQuY2Fyb3VzZWx7XG5cblx0XHRcdH1cblx0XHR9XG5cdH1cblxufVxuXG5cblxuXG5cblxuIl0sIm1hcHBpbmdzIjoiQXFCQUEsNEVBQTRFO0FBRTVFO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxJQUFLO0VBQUUsT0FBTztFQUMzQix3QkFBd0IsRUFBRSxJQUFLO0VBQUUsT0FBTztDQUN6Qzs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILE1BQU0sRUFBRSxDQUFFO0NBQ1g7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILE9BQU8sRUFBRSxLQUFNO0NBQ2hCOztBQUVEOzs7R0FHRztBQUVILEFBQUEsRUFBRSxDQUFDO0VBQ0QsU0FBUyxFQUFFLEdBQUk7RUFDZixNQUFNLEVBQUUs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 */
