/* Minification failed. Returning unminified contents.
(4260,47): run-time error CSS1030: Expected identifier, found ''.lang''
(4260,54): run-time error CSS1031: Expected selector, found ')'
(4260,54): run-time error CSS1025: Expected comma or open brace, found ')'
(5230,47): run-time error CSS1030: Expected identifier, found '.'
(5230,58): run-time error CSS1031: Expected selector, found ')'
(5230,58): run-time error CSS1025: Expected comma or open brace, found ')'
 */
@charset "UTF-8";
/*
@import "compass";
@import "compass/reset";
@import "compass/typography/vertical_rhythm";
@import "breakpoint";
@import "singularitygs";
*/
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, nav.primary .teaser .h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/* Clearfixes */
/* generated with grunt-sass-globbing */
/*
$grids: 12;
$gutters: 1/3; //(20px / $base-font-size) * 1em;
//$gutters: add-gutter(1/10 at $md);
*/
/* generated with grunt-sass-globbing */
nav.primary:before, header#page-header:after {
  /*
      @include background-image(
          linear-gradient(to bottom, rgba(0,0,0,.15), rgba(0,0,0,0) 30%)
      );
  */
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.15), transparent 30%), radial-gradient(100% 10px at 50% 1px, rgba(0, 0, 0, 0.15), transparent 50%);
  z-index: 5; }

nav.primary {
  position: relative; }
  nav.primary:before {
    position: absolute;
    content: '';
    left: 0;
    width: 100%;
    top: 0;
    height: 8px; }

header#page-header {
  position: relative; }
  header#page-header:after {
    position: absolute;
    content: '';
    left: 0;
    width: 100%;
    bottom: -8px;
    height: 8px; }

/*
SCSS variables are information about icon's compiled state, stored under its original file name

.icon-home {
  width: $icon-home-width;
}

The large array-like variables contain all information about a single icon
$icon-home: x y offset_x offset_y width height total_width total_height image_path;

At the bottom of this section, we provide information about the spritesheet itself
$spritesheet: width height image $spritesheet-sprites;
*/
/*
The provided mixins are intended to be used with the array-like variables

.icon-home {
  @include sprite-width($icon-home);
}

.icon-email {
  @include sprite($icon-email);
}
*/
/*
The `sprites` mixin generates identical output to the CSS template
  but can be overridden inside of SCSS

@include sprites($spritesheet-sprites);
*/
/*
SCSS variables are information about icon's compiled state, stored under its original file name

.icon-home {
  width: $icon-home-width;
}

The large array-like variables contain all information about a single icon
$icon-home: x y offset_x offset_y width height total_width total_height image_path;

At the bottom of this section, we provide information about the spritesheet itself
$spritesheet: width height image $spritesheet-sprites;
*/
/*
The provided mixins are intended to be used with the array-like variables

.icon-home {
  @include sprite-width($icon-home);
}

.icon-email {
  @include sprite($icon-email);
}
*/
/*
The `sprites` mixin generates identical output to the CSS template
  but can be overridden inside of SCSS

@include sprites($spritesheet-sprites);
*/
/* generated with grunt-sass-globbing */
@font-face {
  font-family: "cc-icons";
  src: url("../fonts/cc-icons.eot");
  src: url("../fonts/cc-icons.eot?#iefix") format("embedded-opentype"), url("../fonts/cc-icons.woff") format("woff"), url("../fonts/cc-icons.ttf") format("truetype"), url("../fonts/cc-icons.svg#icomoon") format("svg");
  font-weight: normal;
  font-style: normal; }

img {
  border: 0; }

.icon {
  font-size: inherit;
  line-height: inherit; }

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

[class^="icon-"]:not(.icon-input-group), [class*=" icon-"]:not(.icon-input-group), #cboxClose:before, ul.checkmarks li:before, .hero .elm-content ul li:before, .filters.show-categories fieldset.categories .categories-toggle label.checked .icon:before, .flex-direction-nav a:before, .flex-direction-nav a:after, #page-footer a.top span.icon:before, .dk-selected:before, .dk-select-open-up .dk-selected:before,
.dk-select-open-down .dk-selected:before, .click-to-edit label.input-text.over:before, .click-to-edit label.over.input-textarea:before, .grid-list .elm-content a.more-link .icon:before,
.grid-list .elm-content-over a.more-link .icon:before, .grid-list .type-video a.more-link .icon:before, .nav-btn a .icon:before, .nav-btn a.active .icon:before, .related .type-video .elm-image:before, .animations .type-video .elm-image:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'cc-icons' !important;
  speak: none;
  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-arrow-left-big:before, .flex-direction-nav a:before {
  content: "\e902"; }

.icon-arrow-right-big:before, .flex-direction-nav a.flex-next:before {
  content: "\e903"; }

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

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

.icon-SoftConvex:before {
  content: "\e906"; }

.icon-speechBubbles:before {
  content: "\e92e"; }

.icon-arrow-down:before, .dk-selected:before {
  content: ""; }

.icon-arrow-left:before {
  content: "\e90e"; }

.icon-arrow-right:before, .grid-list .elm-content a.more-link .icon:before,
.grid-list .elm-content-over a.more-link .icon:before {
  content: ""; }

.icon-arrow-up:before, #page-footer a.top span.icon:before, .dk-select-open-up .dk-selected:before,
.dk-select-open-down .dk-selected:before, .click-to-edit label.input-text.over:before, .click-to-edit label.over.input-textarea:before {
  content: ""; }

.icon-box-open:before {
  content: "\e911"; }

.icon-checkmark:before, ul.checkmarks li:before, .hero .elm-content ul li:before {
  content: "\e912"; }

.icon-close:before, #cboxClose:before, .filters.show-categories fieldset.categories .categories-toggle label.checked .icon:before, .nav-btn a.active .icon:before {
  content: "\e913"; }

.icon-feature-curved-tip:before {
  content: "\e914"; }

.icon-feature-discrete:before {
  content: "\e915"; }

.icon-feature-easy-open:before {
  content: "\e916"; }

.icon-feature-easy-use:before {
  content: "\e917"; }

.icon-feature-hygenic:before {
  content: "\e918"; }

.icon-feature-instant:before {
  content: "\e919"; }

.icon-feature-preconnected:before {
  content: "\e91a"; }

.icon-feature-size-variety:before {
  content: "\e91b"; }

.icon-gender-female-outline:before {
  content: "\e91c"; }

.icon-gender-female:before {
  content: "\e91d"; }

.icon-gender-male-outline:before {
  content: "\e91e"; }

.icon-gender-male:before {
  content: "\e91f"; }

.icon-info:before {
  content: "\e920"; }

.icon-media-play:before, .grid-list .type-video a.more-link .icon:before, .related .type-video .elm-image:before, .animations .type-video .elm-image:before {
  content: "\e921"; }

.icon-navbars:before, .nav-btn a .icon:before {
  content: "\e922"; }

.icon-pencil:before {
  content: "\e923"; }

.icon-phone-outline:before {
  content: "\e924"; }

.icon-plus:before {
  content: "\e925"; }

.icon-search:before {
  content: "\e926"; }

.icon-sign-up:before {
  content: "\e927"; }

.icon-social_facebook:before {
  content: "\e928"; }

.icon-social_googleplus:before {
  content: "\e929"; }

.icon-social_instagram:before {
  content: "\e92a"; }

.icon-social_twitter:before {
  content: "\e92b"; }

.icon-social_youtube:before {
  content: "\e92c"; }

.icon-tree:before {
  content: "\e92d"; }

/* apply a natural box layout model to all elements, but allowing components to change */
html {
  box-sizing: border-box; }

*, *:before, *:after {
  box-sizing: inherit; }

body {
  background-color: #f5f5f5;
  text-align: center;
  margin: 0; }
  body.page-article, body.page-product {
    background-color: #fff; }

.main-content {
  transition: blur .15s ease-in-out; }
  .main-content > * + *, .main-content > .dynBlock > * + * {
    margin-top: 2.4rem; }
  .main-content.popup {
    filter: blur(25px); }
    .no-cssfilters .main-content.popup {
      opacity: 0.4; }

.content-wrapper, .article-full .main-content, .facts {
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
  text-align: left;
  max-width: 70.66667em;
  overflow: hidden; }
  @media (min-width: 45em) {
    .related .content-wrapper, .related .article-full .main-content, .article-full .related .main-content, .related .facts,
    .animations .content-wrapper,
    .animations .article-full .main-content, .article-full
    .animations .main-content,
    .animations .facts {
      max-width: 74.66667em;
      padding-left: 4rem;
      padding-right: 4rem; } }
  .form-page .content-wrapper, .form-page .article-full .main-content, .article-full .form-page .main-content, .form-page .facts {
    overflow: visible; }
    .form-page .content-wrapper:after, .form-page .article-full .main-content:after, .article-full .form-page .main-content:after, .form-page .facts:after {
      display: block;
      clear: both;
      content: ""; }

.float-right {
  float: right; }

.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

.width-50 {
  padding-bottom: 5px; }
  @media (min-width: 30em) {
    .width-50 {
      width: 50%;
      float: left; }
      .width-50:first-child {
        padding-right: 1rem; }
      .width-50:last-child {
        padding-left: 1rem; }
      form .width-50:first-child {
        padding-right: 5px; }
      form .width-50:last-child {
        padding-left: 5px; } }

.row:before, .button-group .form-terms:before, .row:after, .button-group .form-terms:after {
  content: " ";
  display: table; }

.row:after, .button-group .form-terms:after {
  *zoom: 1;
  clear: both; }

.row {
  margin: 0 -1rem; }
  .row + .checkbox-group {
    margin-top: -1rem; }

.width-1-1 {
  width: 100%;
  float: left;
  padding: 0 1rem 0 1rem; }
  .form-header .width-1-1 {
    padding-left: 0;
    padding-right: 0;
    margin-left: 1rem;
    margin-right: 1rem; }

.width-1-2 {
  padding: 0 1rem 0 1rem;
  margin-bottom: 1rem; }
  @media (min-width: 45em) {
    .width-1-2.sm-break {
      width: 50%;
      float: left; } }
  @media (min-width: 55em) {
    .width-1-2.md-break {
      width: 50%;
      float: left; } }
  @media (min-width: 30em) {
    .width-1-2:not(.sm-break):not(.md-break) {
      width: 50%;
      float: left; } }
  @media (min-width: 30em) {
    .ie8 .width-1-2 {
      width: 49%;
      margin-right: 1%;
      float: left; } }
  .width-1-2 .width-1-2 {
    margin-bottom: 0; }

.width-1-3 {
  margin-bottom: 0.5rem;
  padding: 0 1rem; }
  @media (min-width: 45em) {
    .width-1-3.sm-break {
      width: 33.33333%;
      float: left; } }
  @media (min-width: 55em) {
    .width-1-3.md-break {
      width: 33.33333%;
      float: left; } }
  @media (min-width: 30em) {
    .width-1-3:not(.sm-break):not(.md-break) {
      width: 33.33333%;
      float: left; } }
  @media (min-width: 30em) {
    .ie8 .width-1-3 {
      width: 32.33333%;
      margin-right: 1%;
      float: left; } }
  .width-1-3:nth-child(3n + 1) {
    clear: left; }

.width-limit {
  max-width: 600px;
  width: 100%;
  margin: 0 auto; }

.border-bottom {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #bcbcbc; }

.border-top {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid #bcbcbc; }

.recommended {
  background: #f5f5f5; }

.related + .recommended,
.animations + .recommended {
  background: none; }

ul.text-buttons a, .input-button, .input-buttons label, .icon-button, .icon-buttons label, .type-product .article-header .content-block .elm-actions a,
.button,
button {
  transition: background .15s ease-in-out;
  display: inline-block;
  font-size: 15px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.6rem;
  line-height: 36px;
  line-height: 2.4rem;
  margin: 0;
  padding: 0 0.8rem;
  border: none;
  color: #fff;
  border-radius: 4px;
  background: #00b2ce;
  text-align: center !important;
  font-family: "Coloplast", arial, sans-serif; }
  .no-touch ul.text-buttons a:hover, ul.text-buttons .no-touch a:hover, .no-touch .input-button:hover, .no-touch .input-buttons label:hover, .input-buttons .no-touch label:hover, .no-touch .icon-button:hover, .no-touch .icon-buttons label:hover, .icon-buttons .no-touch label:hover, .no-touch .type-product .article-header .content-block .elm-actions a:hover, .type-product .article-header .content-block .elm-actions .no-touch a:hover,
  .no-touch
  .button:hover,
  .no-touch button:hover {
    background: #009cb5;
    color: #fff; }
    .no-touch ul.text-buttons a:hover .icon, ul.text-buttons .no-touch a:hover .icon, .no-touch .input-button:hover .icon, .no-touch .input-buttons label:hover .icon, .input-buttons .no-touch label:hover .icon, .no-touch .icon-button:hover .icon, .no-touch .icon-buttons label:hover .icon, .icon-buttons .no-touch label:hover .icon, .no-touch .type-product .article-header .content-block .elm-actions a:hover .icon, .type-product .article-header .content-block .elm-actions .no-touch a:hover .icon, .no-touch
    .button:hover .icon, .no-touch button:hover .icon {
      color: #fff; }

.input-submit.disabled {
  pointer-events: none;
  cursor: not-allowed;
  background: #bcbcbc; }

a.button {
  min-width: 180px;
  text-decoration: none; }
  a.button.disabled {
    pointer-events: none;
    cursor: not-allowed;
    background: #bcbcbc; }
  a.button:hover {
    color: #fff; }

ul.text-buttons {
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  list-style: none; }
  ul.text-buttons li {
    margin: 0; }
    ul.text-buttons li + li {
      margin-top: 0.8rem; }
  ul.text-buttons a {
    display: block;
    line-height: 18px;
    line-height: 1.2rem;
    padding: 0.8rem 2.4rem; }

@font-face {
  font-family: "HelveticaNeueW01";
  src: url("../fonts/ae1656aa-5f8f-4905-aed0-93e667bd6e4a-abf75fb0048a6453487583d97e540c886a30bb40.eot?#iefix");
  src: local("HelveticaNeue-Light"), local("Helvetica Neue Light"), url("../fonts/ae1656aa-5f8f-4905-aed0-93e667bd6e4a-abf75fb0048a6453487583d97e540c886a30bb40.eot?#iefix") format("eot"), url("../fonts/530dee22-e3c1-4e9f-bf62-c31d510d9656-d3f5ed72722efaf436265c43a014fdd0cfd77737.woff") format("woff"), url("../fonts/688ab72b-4deb-4e15-a088-89166978d469-43777e352c10b5e05939db144bee82b73d858491.ttf") format("truetype"), url("../fonts/7816f72f-f47e-4715-8cd7-960e3723846a-72fb4fc5fc78ecb74c1a3c1712129eb4d0ebaa6b.svg#7816f72f-f47e-4715-8cd7-960e3723846a") format("svg");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01";
  src: url("../fonts/b7693a83-b861-4aa6-85e0-9ecf676bc4d6-1f34fa8962dba17dd420802513f92e646643c142.eot?#iefix");
  src: local("HelveticaNeue-Roman"), local("Helvetica Neue Roman"), url("../fonts/b7693a83-b861-4aa6-85e0-9ecf676bc4d6-1f34fa8962dba17dd420802513f92e646643c142.eot?#iefix") format("eot"), url("../fonts/bcf54343-d033-41ee-bbd7-2b77df3fe7ba-69bebefe9edeac85cc27516dbe0ea176c1c2c25c.woff") format("woff"), url("../fonts/b0ffdcf0-26da-47fd-8485-20e4a40d4b7d-732a6affbe345e7093c12f5c0a3c6b36fc5c70e6.ttf") format("truetype"), url("../fonts/da09f1f1-062a-45af-86e1-2bbdb3dd94f9-7c1a1f386e4ba091e7c354a0913f51e247a66cc6.svg#da09f1f1-062a-45af-86e1-2bbdb3dd94f9") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01";
  src: url("../fonts/07fe0fec-b63f-4963-8ee1-535528b67fdb-fe56a38129fbbe9b1ff6e2b54a7b9b3409b322b9.eot?#iefix");
  src: local("HelveticaNeue-Medium"), local("Helvetica Neue Medium"), url("../fonts/07fe0fec-b63f-4963-8ee1-535528b67fdb-fe56a38129fbbe9b1ff6e2b54a7b9b3409b322b9.eot?#iefix") format("eot"), url("../fonts/60be5c39-863e-40cb-9434-6ebafb62ab2b-2920e91b1e6ad09a5e10cd3ac4505dd51632acba.woff") format("woff"), url("../fonts/4c6503c9-859b-4d3b-a1d5-2d42e1222415-cb113dd963a4d1349895b7bd849bc4ae608eb0a8.ttf") format("truetype"), url("../fonts/36c182c6-ef98-4021-9b0d-d63122c2bbf5-66821f7b57dbfe285e400c8b1d39cf67ec196da1.svg#36c182c6-ef98-4021-9b0d-d63122c2bbf5") format("svg");
  font-weight: 600;
  font-style: normal; }

@font-face {
  font-family: "HelveticaNeueW01";
  src: url("../fonts/c07fef9e-a934-42d7-92ad-69205f2b8a00-bb790812b9c72abc920228dab89a61b9ae7aa457.eot?#iefix");
  src: local("HelveticaNeue-Bold"), local("Helvetica Neue Bold"), url("../fonts/c07fef9e-a934-42d7-92ad-69205f2b8a00-bb790812b9c72abc920228dab89a61b9ae7aa457.eot?#iefix") format("eot"), url("../fonts/14ff6081-326d-4dae-b778-d7afa66166fc-97968884d4c5a93c46ab1334ce9e9156c694ea4d.woff") format("woff"), url("../fonts/8fda1e47-19be-46c7-8d83-8d4fb35572f0-e352a822bc1fa4bb1594ad9ff4546b8c95d26ab3.ttf") format("truetype"), url("../fonts/f751c8ae-1057-46d9-8d74-62592e002568-f61c8b2b6178ae899dce49b0f382f953a56c983f.svg#f751c8ae-1057-46d9-8d74-62592e002568") format("svg");
  font-weight: 800;
  font-style: normal; }

/* Webfont: Coloplast */
@font-face {
  font-family: "Coloplast";
  src: url("../fonts/Coloplast.eot");
  src: url("../fonts/Coloplast.eot?#iefix") format("embedded-opentype"), url("../fonts/Coloplast.woff") format("woff"), url("../fonts/Coloplast.ttf") format("truetype"), url("../fonts/Coloplast.svg#Coloplast") format("svg");
  font-style: normal;
  font-weight: normal;
  text-rendering: optimizeLegibility; }

/* Webfont: Coloplast-Italic */
@font-face {
  font-family: "Coloplast";
  src: url("../fonts/Coloplast-Italic.eot");
  src: url("../fonts/Coloplast-Italic.eot?#iefix") format("embedded-opentype"), url("../fonts/Coloplast-Italic.woff") format("woff"), url("../fonts/Coloplast-Italic.ttf") format("truetype"), url("../fonts/Coloplast-Italic.svg#Coloplast-Italic") format("svg");
  font-style: italic;
  font-weight: normal;
  text-rendering: optimizeLegibility; }

/* Webfont: ColoplastMedium */
@font-face {
  font-family: "ColoplastMedium";
  src: url("../fonts/ColoplastMedium.eot");
  src: url("../fonts/ColoplastMedium.eot?#iefix") format("embedded-opentype"), url("../fonts/ColoplastMedium.woff") format("woff"), url("../fonts/ColoplastMedium.ttf") format("truetype"), url("../fonts/ColoplastMedium.svg#ColoplastMedium") format("svg");
  font-style: normal;
  font-weight: normal;
  text-rendering: optimizeLegibility; }

/* Webfont: ColoplastMedium-Italic */
@font-face {
  font-family: "ColoplastMedium";
  src: url("../fonts/ColoplastMedium-Italic.eot");
  src: url("../fonts/ColoplastMedium-Italic.eot?#iefix") format("embedded-opentype"), url("../fonts/ColoplastMedium-Italic.woff") format("woff"), url("../fonts/ColoplastMedium-Italic.ttf") format("truetype"), url("../fonts/ColoplastMedium-Italic.svg#ColoplastMedium-Italic") format("svg");
  font-style: italic;
  font-weight: normal;
  text-rendering: optimizeLegibility; }

/* Webfont: Coloplast-Bold */
@font-face {
  font-family: 'Coloplast';
  src: url("../fonts/Coloplast-Bold.eot");
  src: url("../fonts/Coloplast-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/Coloplast-Bold.woff") format("woff"), url("../fonts/Coloplast-Bold.ttf") format("truetype"), url("../fonts/Coloplast-Bold.svg#Coloplast-Bold") format("svg");
  font-style: normal;
  font-weight: bold;
  text-rendering: optimizeLegibility; }

/* Webfont: Coloplast-BoldItalic */
@font-face {
  font-family: 'Coloplast';
  src: url("../fonts/Coloplast-BoldItalic.eot");
  src: url("../fonts/Coloplast-BoldItalic.eot?#iefix") format("embedded-opentype"), url("../fonts/Coloplast-BoldItalic.woff") format("woff"), url("../fonts/Coloplast-BoldItalic.ttf") format("truetype"), url("../fonts/Coloplast-BoldItalic.svg#Coloplast-BoldItalic") format("svg");
  font-style: italic;
  font-weight: bold;
  text-rendering: optimizeLegibility; }

html {
  font-size: 93.75%;
  line-height: 0.4em; }

*, *:before, *:after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

body,
table,
thead,
tbody,
tfoot,
input,
textarea,
button,
select {
  font-family: Arial, Helvetica, sans-serif; }

body {
  color: #707070;
  line-height: 28px;
  line-height: 1.86667rem; }

h1,
h2,
nav.primary .teaser .h2,
h3,
h4,
h5,
h6 {
  font-family: "Coloplast", arial, sans-serif;
  color: inherit;
  font-weight: 300; }
  .ie8 h1,
  .ie8
  h2,
  .ie8 nav.primary .teaser .h2,
  nav.primary .teaser .ie8 .h2, .ie8
  h3, .ie8
  h4, .ie8
  h5, .ie8
  h6 {
    margin: 5px 0 15px 0; }

.ie8 p {
  display: block;
  margin-bottom: 5px 0 15px 0; }

h1 {
  font-size: 30px;
  font-size: 2rem;
  line-height: 36px;
  line-height: 2.4rem;
  margin: 1.2rem 0;
  color: #00b2ce; }
  .mfp-content h1 {
    font-size: 50px;
    font-size: 3.33333rem;
    line-height: 54px;
    line-height: 3.6rem; }
  h1 + p {
    margin-top: -10px; }
  @media (min-width: 45em) {
    h1 {
      font-size: 30px;
      font-size: 2rem;
      line-height: 36px;
      line-height: 2.4rem; } }

h2, nav.primary .teaser .h2 {
  font-size: 30px;
  font-size: 2rem;
  line-height: 36px;
  line-height: 2.4rem;
  margin: 1.2rem 0;
  color: #00b2ce; }
  h2 + p, nav.primary .teaser .h2 + p {
    margin-top: -10px; }
  .recommended h2, .recommended nav.primary .teaser .h2, nav.primary .teaser .recommended .h2,
  .features h2,
  .features nav.primary .teaser .h2, nav.primary .teaser
  .features .h2,
  .related h2,
  .related nav.primary .teaser .h2, nav.primary .teaser
  .related .h2,
  .grid-list h2,
  .grid-list nav.primary .teaser .h2, nav.primary .teaser
  .grid-list .h2,
  .animations h2,
  .animations nav.primary .teaser .h2, nav.primary .teaser
  .animations .h2 {
    margin: 0.8rem 0;
    font-size: 22px;
    font-size: 1.46667rem;
    line-height: 30px;
    line-height: 2rem; }
    .recommended h2 + p, .recommended nav.primary .teaser .h2 + p, nav.primary .teaser .recommended .h2 + p,
    .features h2 + p,
    .features nav.primary .teaser .h2 + p, nav.primary .teaser
    .features .h2 + p,
    .related h2 + p,
    .related nav.primary .teaser .h2 + p, nav.primary .teaser
    .related .h2 + p,
    .grid-list h2 + p,
    .grid-list nav.primary .teaser .h2 + p, nav.primary .teaser
    .grid-list .h2 + p,
    .animations h2 + p,
    .animations nav.primary .teaser .h2 + p, nav.primary .teaser
    .animations .h2 + p {
      margin-top: 0px; }

h3 {
  font-size: 22px;
  font-size: 1.46667rem;
  line-height: 30px;
  line-height: 2rem;
  margin: 0.8rem 0;
  color: #00b2ce; }

h4 {
  font-size: 18px;
  font-size: 1.2rem;
  line-height: 24px;
  line-height: 1.6rem;
  margin: 1.2rem 0 0.8rem;
  color: #00b2ce; }

h5 {
  font-size: 15px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.6rem;
  margin: 0.4rem 0;
  color: #00b2ce; }

p,
ul,
ol {
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  line-height: 25px; }
  p:first-child,
  ul:first-child,
  ol:first-child {
    margin-top: 0; }
  p + h2, nav.primary .teaser p + .h2,
  ul + h2, nav.primary .teaser
  ul + .h2,
  ol + h2, nav.primary .teaser
  ol + .h2 {
    margin-top: 1.2rem; }
  p + h3,
  ul + h3,
  ol + h3 {
    margin-top: 1.2rem; }

small {
  display: inline-block;
  font-size: 12px;
  line-height: 15px; }

ul {
  list-style: disc; }

ol {
  list-style: decimal; }

li {
  margin-left: 1.6em;
  display: list-item; }

a:not(.button):not(button) {
  transition: color .15s ease-in-out;
  text-decoration: underline;
  outline: none; }
  a:not(.button):not(button), a:not(.button):not(button):visited {
    color: #00b2ce; }
  a:not(.button):not(button):active,
  .no-touch a:not(.button):not(button):hover {
    color: #009cb5; }
  a:not(.button):not(button) .icon {
    align: absmiddle; }

h1 .edit {
  font-size: 16px; }

.edit {
  vertical-align: super;
  font-size: 1rem !important;
  line-height: 1rem; }

sup, sub {
  vertical-align: baseline;
  position: relative;
  top: -0.4em;
  font-size: .6em; }

sub {
  top: 0.4em; }

strong {
  font-weight: 600; }

em {
  font-style: italic; }

.category {
  font-size: 12px;
  font-weight: 300;
  text-transform: uppercase;
  line-height: 12px;
  line-height: 0.8rem; }

hr {
  display: inline;
  float: left;
  clear: both;
  width: 100%;
  height: 1px;
  border: 0;
  border-bottom: 1px solid #e7e7e7;
  margin: 1.6rem 0; }

blockquote {
  font-family: "Coloplast", arial, sans-serif;
  font-weight: 300;
  font-size: 22px;
  font-size: 1.46667rem;
  line-height: 30px;
  line-height: 2rem;
  position: relative;
  color: #00b2ce;
  margin-top: 1.5em;
  margin-bottom: 1.5em;
  quotes: "“" "”" "‘" "’";
  z-index: 0; }
  blockquote:before {
    position: absolute;
    color: #00b2ce;
    content: open-quote;
    font-size: 40rem;
    top: 0;
    line-height: 0.75;
    z-index: -1;
    left: -1.5rem;
    opacity: 0.1; }
  blockquote blockquote p {
    display: inline; }

/* generated with grunt-sass-globbing */
/*
    Colorbox Core Style:
    The following CSS is consistent between example themes and should not be altered.
*/
#colorbox, #cboxOverlay, #cboxWrapper {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  overflow: hidden; }

#cboxWrapper {
  max-width: none; }

#cboxOverlay {
  position: fixed;
  width: 100%;
  height: 100%; }

#cboxMiddleLeft, #cboxBottomLeft {
  clear: left; }

#cboxContent {
  position: relative; }

#cboxLoadedContent {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

#cboxTitle {
  margin: 0; }

#cboxLoadingOverlay, #cboxLoadingGraphic {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow {
  cursor: pointer; }

.cboxPhoto {
  float: left;
  margin: auto;
  border: 0;
  display: block;
  max-width: none;
  -ms-interpolation-mode: bicubic; }

.cboxIframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  padding: 0;
  margin: 0; }

#colorbox, #cboxContent, #cboxLoadedContent {
  box-sizing: content-box;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box; }

/* 
    User Style:
    Change the following styles to modify the appearance of Colorbox.  They are
    ordered & tabbed in a way that represents the nesting of the generated HTML.
*/
#cboxOverlay {
  margin: 0;
  background: #000;
  opacity: 0.8; }

#colorbox {
  margin: 0;
  outline: 0; }

#cboxContent {
  overflow: visible;
  background: #f5f5f5;
  padding: 0; }

.cboxIframe {
  background: #fff; }

#cboxError {
  padding: 50px;
  border: 1px solid #ccc; }

#cboxLoadedContent {
  padding: 70px; }

#cboxLoadingGraphic,
#cboxLoadingOverlay,
#cboxTitle,
#cboxCurrent,
#cboxPrevious,
#cboxNext,
#cboxSlideshow {
  display: none; }

#cboxClose {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 22px;
  height: 22px;
  line-height: 22px;
  font-size: 22px;
  padding: 0;
  min-width: 0;
  overflow: hidden;
  outline: 0;
  background: transparent;
  color: #00b2ce; }
  #cboxClose:before {
    display: block;
    width: 22px;
    height: 22px; }

.dynBlock {
  margin: 0; }

.content-block {
  clear: both; }
  .content-block .elm-image {
    text-align: center; }
    .content-block .elm-image img {
      width: 100%;
      display: block;
      margin: 0 auto; }
  .content-block p {
    max-width: 50em; }
  @media (min-width: 45em) {
    .content-block .elm-image {
      width: 49.45055%;
      float: left;
      margin-right: -100%;
      margin-left: 0;
      clear: none; }
    .content-block .elm-content {
      width: 49.45055%;
      float: right;
      margin-left: 0;
      margin-right: 0;
      clear: none; } }

ul.checkmarks, .hero .elm-content ul {
  list-style: none; }
  ul.checkmarks li, .hero .elm-content ul li {
    position: relative;
    margin-left: 0;
    padding-left: 2em; }
    ul.checkmarks li:before, .hero .elm-content ul li:before {
      position: relative;
      float: left;
      margin-left: -2em;
      margin-top: 0.4em; }

ul.social {
  display: inline;
  float: left;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 1.6rem;
  padding: 0;
  list-style: none; }
  ul.social li {
    display: inline;
    float: left;
    color: #707070; }
    ul.social li:nth-child(n+2) {
      margin-left: 5px; }
    ul.social li a {
      color: #707070;
      transition-property: color, box-shadow;
      transition-duration: .3s; }
      .no-touch ul.social li a:hover {
        color: #ccc; }
        .no-touch ul.social li a:hover .icon {
          box-shadow: inset 0px 0px 0px 1px #ccc; }
  ul.social span:first-child {
    position: absolute;
    left: -999em; }
  ul.social .icon {
    display: inline;
    float: left;
    font-size: 18px;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    margin: 0;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: inset 0px 0px 0px 1px #707070; }

.filters {
  position: relative;
  z-index: 10;
  overflow: hidden;
  margin-top: 1.2rem; }
  .filters.show-categories fieldset.personal {
    display: none; }
    .filters.show-categories fieldset.personal label .icon {
      font-size: 30px;
      font-size: 2rem;
      line-height: 36px;
      line-height: 2.4rem; }
    .filters.show-categories fieldset.personal label.checked {
      background: #fff; }
  .filters.show-categories fieldset.categories {
    position: relative;
    float: none;
    display: block;
    left: 0;
    padding: 2rem 0 1rem;
    margin-top: 0;
    background: #fff;
    border-radius: 4px; }
    .filters.show-categories fieldset.categories > * {
      display: block;
      margin: 0 2rem; }
    .filters.show-categories fieldset.categories .categories {
      margin-right: 3.2rem; }
      .filters.show-categories fieldset.categories .categories:before, .filters.show-categories fieldset.categories .categories:after {
        content: " ";
        display: table; }
      .filters.show-categories fieldset.categories .categories:after {
        *zoom: 1;
        clear: both; }
      .filters.show-categories fieldset.categories .categories label {
        display: block;
        box-sizing: border-box;
        background: #f0f0f0;
        text-align: center;
        margin-bottom: 1.0989%; }
        .filters.show-categories fieldset.categories .categories label.checked {
          color: #fff;
          background: #00b2ce; }
    .filters.show-categories fieldset.categories .categories-toggle {
      position: absolute;
      top: 0px;
      right: 0px;
      margin: 0; }
      .filters.show-categories fieldset.categories .categories-toggle label.checked {
        padding: 0;
        background: transparent; }
        .filters.show-categories fieldset.categories .categories-toggle label.checked .label {
          display: none; }
        .filters.show-categories fieldset.categories .categories-toggle label.checked .icon {
          margin: 0;
          font-size: inherit;
          background: transparent;
          color: #00b2ce; }
    .filters.show-categories fieldset.categories #filter-category-reset {
      display: inline;
      float: right;
      margin: 0 10px;
      border: 0;
      background: transparent;
      color: #00b2ce; }
  .filters form {
    margin: 0;
    padding: 0; }
  .filters fieldset + fieldset {
    margin-top: 15px; }
  .filters fieldset.categories {
    display: block; }
    .filters fieldset.categories > * {
      display: none; }
    .filters fieldset.categories > .categories-toggle {
      display: block; }
      .filters fieldset.categories > .categories-toggle label {
        padding: 0;
        width: 100%;
        text-align: center; }
        .filters fieldset.categories > .categories-toggle label .label {
          display: inline-block;
          margin: 0;
          padding: 0 18px; }
        .filters fieldset.categories > .categories-toggle label .icon {
          float: right;
          background: #00b2ce;
          color: #fff;
          width: 48px;
          text-align: center;
          font-size: 28px; }
  .filters .checkbox-group label {
    font-size: 14px;
    transition: background-color .3s, color .3s;
    background: #00b2ce;
    color: white;
    border: 1px solid #00b2ce;
    margin-right: 10px;
    margin-bottom: 10px;
    min-width: 0 !important;
    padding: 0 30px;
    height: 50px;
    line-height: 50px;
    font-family: "Coloplast", arial, sans-serif; }
    .filters .checkbox-group label.multi-line {
      line-height: 30px; }
      .filters .checkbox-group label.multi-line .small-type {
        display: block;
        font-size: 0.8em;
        line-height: 0.5; }
    .filters .checkbox-group label:not(.has-icon).checked {
      background: white;
      color: #00b2ce; }
  @media (min-width: 30em) {
    .filters fieldset.categories > .categories-toggle label {
      width: auto; } }
  @media (min-width: 45em) {
    .filters fieldset + fieldset {
      margin-top: 0; }
    .filters fieldset.personal {
      display: block;
      clear: both; }
    .filters fieldset.categories {
      display: inline;
      float: right; }
    .filters.show-categories fieldset.categories .categories {
      margin-right: 3.2rem; }
      .filters.show-categories fieldset.categories .categories:before, .filters.show-categories fieldset.categories .categories:after {
        content: " ";
        display: table; }
      .filters.show-categories fieldset.categories .categories:after {
        *zoom: 1;
        clear: both; }
      .filters.show-categories fieldset.categories .categories label {
        width: 24.17582%;
        clear: right;
        float: left;
        margin-left: 0;
        margin-right: 1.0989%;
        box-sizing: border-box; }
        .filters.show-categories fieldset.categories .categories label:nth-child(4n+4) {
          width: 24.17582%;
          clear: right;
          float: right;
          margin-right: 0; } }

.flex-container a:hover,
.flex-container a:focus,
.flex-slider a:hover,
.flex-slider a:focus {
  outline: none; }

.slides > li,
.flex-control-nav,
.flex-direction-nav {
  margin: 0;
  padding: 0;
  list-style: none; }

.flex-pauseplay span {
  text-transform: capitalize; }

.flexslider {
  margin: 0;
  padding: 0;
  position: relative;
  zoom: 1; }
  .flexslider .slides {
    zoom: 1; }
    .flexslider .slides > li {
      margin: 0;
      display: inline-block;
      -webkit-backface-visibility: hidden; }
    .flexslider .slides img {
      width: 100%;
      height: auto;
      display: block; }
    .flexslider .slides:before, .flexslider .slides:after {
      content: " ";
      display: table; }
    .flexslider .slides:after {
      *zoom: 1;
      clear: both; }
    html[xmlns] .flexslider .slides {
      display: block; }
    * html .flexslider .slides {
      height: 1%; }
    .no-js .flexslider .slides > li:first-child {
      display: block; }

.flex-viewport {
  max-height: 2000px;
  transition: all 1s ease; }
  .loading .flex-viewport {
    max-height: 300px; }

.carousel li {
  margin-right: 5px; }

.flex-direction-nav {
  *height: 0; }
  .flex-direction-nav a {
    text-decoration: none;
    display: block;
    width: 20px;
    height: 60px;
    margin: -30px 0 0;
    position: absolute;
    top: 50%;
    z-index: 10;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s ease-in-out; }
    .flex-direction-nav a:before {
      font-size: 55px;
      line-height: 55px;
      display: inline-block; }
  .flex-direction-nav .flex-prev {
    left: -30px; }
  .flex-direction-nav .flex-next {
    right: -30px;
    text-align: right; }
  .flexslider:hover .flex-direction-nav {
    /*
    .flex-prev { 
      left: 10px;
    }
    .flex-next { 
      right: 10px;
    }
    */ }
    .flexslider:hover .flex-direction-nav .flex-prev,
    .flexslider:hover .flex-direction-nav .flex-next {
      opacity: 0.7; }
      .flexslider:hover .flex-direction-nav .flex-prev:hover,
      .flexslider:hover .flex-direction-nav .flex-next:hover {
        opacity: 1; }
  .flex-direction-nav .flex-disabled {
    opacity: 0 !important;
    filter: alpha(opacity=0);
    cursor: default; }

.flex-pauseplay a {
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  bottom: 5px;
  left: 10px;
  opacity: 0.8;
  z-index: 10;
  overflow: hidden;
  cursor: pointer;
  color: #000;
  /*
    &:before {

      font-family: "@{font-name}";
      font-size: 20px;
      display: inline-block;
      content: @flex-pauseplay-icon-pause;

    }
  */
  /*
    .flex-play:before {

      content: @flex-pauseplay-icon-play;

    }
    */ }
  .flex-pauseplay a:hover {
    opacity: 1; }

.flex-control-nav {
  width: 100%;
  position: absolute;
  bottom: -40px;
  text-align: center; }
  .flex-control-nav li {
    margin: 0 6px;
    display: inline-block;
    zoom: 1;
    *display: inline; }

.flex-control-paging li a {
  width: 9px;
  height: 9px;
  display: block;
  background: #707070;
  cursor: pointer;
  text-indent: -9999px;
  opacity: .5;
  border-radius: 18px;
  transition: background-color .3s ease, opacity .3s ease; }
  .flex-control-paging li a:hover {
    opacity: 1;
    background: #707070; }
  .flex-control-paging li a.flex-active {
    background: #00b2ce;
    opacity: 1;
    cursor: default; }

.flex-control-thumbs {
  margin: 0;
  position: static;
  overflow: hidden; }
  .flex-control-thumbs li {
    width: 25%;
    float: left;
    margin: 0; }
  .flex-control-thumbs img {
    width: 100%;
    height: auto;
    display: block;
    opacity: .7;
    cursor: pointer;
    transition: all 1s ease; }
    .flex-control-thumbs img:hover {
      opacity: 1; }
  .flex-control-thumbs .flex-active {
    opacity: 1;
    cursor: default; }

#page-footer {
  position: relative;
  width: 100%; }
  #page-footer a.top {
    position: absolute;
    top: 1.2rem;
    right: 2rem; }
    #page-footer a.top span:first-child {
      display: none; }
    #page-footer a.top span.icon {
      font-size: 1em;
      line-height: 20px;
      width: 20px;
      height: 20px;
      text-align: right; }
  #page-footer h2, #page-footer nav.primary .teaser .h2, nav.primary .teaser #page-footer .h2 {
    font-size: 18px;
    font-size: 1.2rem;
    line-height: 24px;
    line-height: 1.6rem;
    margin: 0.4rem 0;
    line-height: 1.2;
    border-bottom: 1px solid #bcbcbc; }
  #page-footer p {
    margin: 0.4rem 0;
    font-size: 12px;
    font-size: 0.8rem;
    line-height: 18px;
    line-height: 1.2rem;
    line-height: 18px;
    line-height: 1.2rem; }
  #page-footer .main-footer {
    background: #707070;
    color: #fff; }
    #page-footer .main-footer h2, #page-footer .main-footer nav.primary .teaser .h2, nav.primary .teaser #page-footer .main-footer .h2,
    #page-footer .main-footer a {
      color: inherit;
      text-decoration: none; }
    #page-footer .main-footer .button, #page-footer .main-footer button {
      background: #f0f0f0;
      color: #707070;
      font-size: 12px;
      font-size: 0.8rem;
      line-height: 18px;
      line-height: 1.2rem;
      line-height: 24px;
      line-height: 1.6rem; }
  #page-footer .secondary-footer {
    background: #fff; }
    #page-footer .secondary-footer ul {
      margin: 0;
      padding: 0;
      list-style: none; }
    #page-footer .secondary-footer li {
      display: block;
      margin: 0.4rem 0;
      padding: 0;
      font-size: 10px;
      font-size: 0.66667rem;
      line-height: 18px;
      line-height: 1.2rem;
      line-height: 24px;
      line-height: 1.6rem; }
      #page-footer .secondary-footer li a {
        text-decoration: underline; }
    #page-footer .secondary-footer a {
      color: #707070; }
      #page-footer .secondary-footer a:hover {
        color: #009cb5; }
  #page-footer section.call-us,
  #page-footer section.order-sample,
  #page-footer section.social {
    margin: 1.6rem 0; }
  #page-footer section.call-us .icon,
  #page-footer section.order-sample .icon {
    display: block;
    font-size: 32px;
    line-height: 1em;
    margin-top: 0.8rem;
    color: inherit; }
  #page-footer section.social ul.social li {
    color: rgba(255, 255, 255, 0.5); }
    #page-footer section.social ul.social li a:hover {
      color: #fff; }
      #page-footer section.social ul.social li a:hover .icon {
        box-shadow: inset 0px 0px 0px 1px #fff; }
  #page-footer section.social ul.social .icon {
    box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.5); }

.footer-disclaimer {
  clear: both;
  text-align: center;
  margin: 0.8rem 0;
  padding-top: 0.8rem;
  border-top: 1px solid #bcbcbc; }
  @media (min-width: 55em) {
    .footer-disclaimer {
      clear: none;
      margin: 0.4rem 0;
      padding: 0;
      border: 0;
      float: left;
      text-align: left; } }

@media (min-width: 30em) {
  footer#page-footer .secondary-footer ul {
    display: inline;
    float: left; }
  footer#page-footer .secondary-footer li {
    display: inline;
    float: left; }
    footer#page-footer .secondary-footer li:nth-child(n+2):before {
      content: '-';
      display: inline;
      float: left;
      margin: 0 6px; } }

@keyframes bounce {
  0% {
    transform: translate3d(0, 0, 0); }
  37% {
    transform: translate3d(0, -65px, 0); }
  55% {
    transform: translate3d(0, -48.75px, 0); }
  73% {
    transform: translate3d(0, -65px, 0); }
  82% {
    transform: translate3d(0, -60.45px, 0); }
  91% {
    transform: translate3d(0, -65px, 0); }
  96% {
    transform: translate3d(0, -63.7px, 0); }
  100% {
    transform: translate3d(0, -65px, 0); } }

@media (min-width: 45em) {
  footer#page-footer .main-footer .content-wrapper, footer#page-footer .main-footer .article-full .main-content, .article-full footer#page-footer .main-footer .main-content, footer#page-footer .main-footer .facts {
    max-width: 56.66667em; }
  footer#page-footer h2, footer#page-footer nav.primary .teaser .h2, nav.primary .teaser footer#page-footer .h2 {
    margin: 0;
    font-weight: 400; }
  footer#page-footer section.call-us > *,
  footer#page-footer section.order-sample > * {
    margin-left: 50px; }
  footer#page-footer section.call-us .icon,
  footer#page-footer section.order-sample .icon {
    display: inline;
    position: relative;
    float: left;
    margin-left: 0px;
    margin-top: -0.4rem;
    font-size: 36px;
    text-align: center; }
    footer#page-footer section.call-us .icon.icon-speechBubbles,
    footer#page-footer section.order-sample .icon.icon-speechBubbles {
      font-size: 50px;
      margin-top: -15px;
      margin-left: -5px; }
  footer#page-footer section.call-us {
    width: 24.17582%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none; }
  footer#page-footer section.order-sample {
    width: 32.60073%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none; }
  footer#page-footer section.social {
    width: 32.60073%;
    float: left;
    margin-right: -100%;
    margin-left: 33.69963%;
    clear: none;
    margin-top: 2.4rem;
    text-align: center;
    color: rgba(255, 255, 255, 0.5); }
    footer#page-footer section.social h2, footer#page-footer section.social nav.primary .teaser .h2, nav.primary .teaser footer#page-footer section.social .h2 {
      font-size: 12px;
      font-size: 0.8rem;
      line-height: 18px;
      line-height: 1.2rem;
      font-weight: 600;
      margin-bottom: 0.4rem;
      border-bottom: 0; }
    footer#page-footer section.social ul {
      display: inline-block;
      float: none;
      margin: 0 auto; }
  footer#page-footer section.call-us {
    width: 41.02564%;
    float: left;
    margin-right: -100%;
    margin-left: 8.42491%;
    clear: none; }
  footer#page-footer section.order-sample {
    width: 41.02564%;
    float: left;
    margin-right: -100%;
    margin-left: 67.39927%;
    clear: none; }
  footer#page-footer .secondary-footer ul {
    float: right; }
  .no-legacy.no-touch {
    padding-bottom: 5.6rem; }
    .no-legacy.no-touch footer#page-footer {
      position: fixed;
      top: 100%;
      margin-top: 0;
      z-index: 20;
      transform: translate3d(0, 0, 0);
      transition: transform .3s; }
      .no-legacy.no-touch footer#page-footer section.call-us,
      .no-legacy.no-touch footer#page-footer section.order-sample {
        transform: translate3d(20%, 0, 0);
        transition: transform .2s; }
        .no-legacy.no-touch footer#page-footer section.call-us h2, .no-legacy.no-touch footer#page-footer section.call-us nav.primary .teaser .h2, nav.primary .teaser .no-legacy.no-touch footer#page-footer section.call-us .h2,
        .no-legacy.no-touch footer#page-footer section.order-sample h2,
        .no-legacy.no-touch footer#page-footer section.order-sample nav.primary .teaser .h2, nav.primary .teaser
        .no-legacy.no-touch footer#page-footer section.order-sample .h2 {
          border-bottom-width: 0px;
          transition: border .2s; }
        .no-legacy.no-touch footer#page-footer section.call-us > *:nth-child(n+3),
        .no-legacy.no-touch footer#page-footer section.order-sample > *:nth-child(n+3) {
          opacity: 0;
          transform: translate3d(7%, 20%, 0);
          transition-property: opacity, transform;
          transition-duration: .3s;
          transition-timing-function: ease; }
      .no-legacy.no-touch footer#page-footer section.order-sample {
        transform: translate3d(-20%, 0, 0); }
        .no-legacy.no-touch footer#page-footer section.order-sample > *:nth-child(n+3) {
          transform: translate3d(-7%, 20%, 0); }
      .no-legacy.no-touch footer#page-footer section.social {
        opacity: 0;
        transform: translate3d(0, 20%, 0);
        transition-property: opacity, transform;
        transition-duration: .3s;
        transition-timing-function: ease; }
    .no-legacy.no-touch .scroll-near-bottom footer#page-footer {
      transform: translate3d(0, -65px, 0) !important; }
      .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover,
      .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over {
        transform: translate3d(0, -100%, 0) !important; }
        .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.call-us,
        .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.order-sample,
        .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.call-us,
        .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.order-sample {
          transform: translate3d(0, 0, 0); }
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.call-us h2, .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.call-us nav.primary .teaser .h2, nav.primary .teaser .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.call-us .h2,
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.order-sample h2,
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.order-sample nav.primary .teaser .h2, nav.primary .teaser
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.order-sample .h2,
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.call-us h2,
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.call-us nav.primary .teaser .h2, nav.primary .teaser
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.call-us .h2,
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.order-sample h2,
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.order-sample nav.primary .teaser .h2, nav.primary .teaser
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.order-sample .h2 {
            border-bottom-width: 1px; }
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.call-us > *:nth-child(n+3),
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.order-sample > *:nth-child(n+3),
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.call-us > *:nth-child(n+3),
          .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.order-sample > *:nth-child(n+3) {
            opacity: 1;
            transform: translate3d(0, 0, 0);
            transition-delay: .1s; }
        .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.order-sample > *:nth-child(n+3),
        .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.order-sample > *:nth-child(n+3) {
          transition-delay: .1s; }
        .no-legacy.no-touch .scroll-near-bottom footer#page-footer:hover section.social,
        .no-legacy.no-touch .scroll-near-bottom footer#page-footer .over section.social {
          opacity: 1;
          transform: translate3d(0, 0, 0); } }

@media (min-width: 55em) {
  footer#page-footer:hover {
    height: auto; }
  footer#page-footer .main-footer .content-wrapper, footer#page-footer .main-footer .article-full .main-content, .article-full footer#page-footer .main-footer .main-content, footer#page-footer .main-footer .facts {
    margin-left: auto;
    margin-right: auto; } }

input,
textarea {
  color: #707070; }

label, .form-row, .disclaimer {
  display: inline;
  float: left;
  width: 100%; }

.input-text, .input-textarea {
  position: relative; }
  .input-text input, .input-textarea input, .input-text textarea, .input-textarea textarea {
    width: 100%;
    padding: 11px 11px;
    outline: none;
    border-radius: 4px;
    border: 0;
    margin: 0; }
    .ie8 .input-text input, .ie8 .input-textarea input, .ie8 .input-text textarea, .ie8 .input-textarea textarea {
      border: 1px solid #bcbcbc; }
  .form-header .input-text, .form-header .input-textarea {
    border: 1px solid #bcbcbc; }

.textarea {
  width: 100%;
  padding: 11px 11px;
  outline: none;
  border-radius: 4px;
  border: 0;
  margin: 0; }

.input-button, .input-buttons label, .icon-button, .icon-buttons label {
  background: #fff;
  color: #707070;
  height: 40px;
  line-height: 40px;
  padding: 0px 18px;
  margin-bottom: 15px;
  text-align: left;
  overflow: hidden; }
  .input-button .icon, .input-buttons label .icon, .icon-button .icon, .icon-buttons label .icon {
    line-height: inherit; }

.input-buttons label {
  padding-top: 0;
  padding-bottom: 0;
  transition: background-color .3s; }
  .no-touch .input-buttons label:hover {
    background: white !important; }
  .input-buttons label .icon {
    padding-top: 0; }
  .input-buttons label:before {
    display: none; }
  .input-buttons label.has-icon.input-checkbox {
    padding-left: 34px; }
    .input-buttons label.has-icon.input-checkbox .icon {
      position: relative;
      top: 0;
      left: 0;
      margin-left: -20px; }
  .input-buttons label:not(.has-icon).checked {
    background: #ccc; }

.icon-button, .icon-buttons label {
  text-align: center;
  width: 40px;
  padding: 0; }
  .icon-button .label, .icon-buttons label .label {
    display: none; }

.ie8 .icon-buttons label {
  overflow: visible;
  margin: 0 20px 0 0; }
  .ie8 .icon-buttons label:hover {
    color: black; }

label {
  margin-bottom: 15px; }
  label.input-text, label.input-textarea, label.input-select {
    margin-bottom: 15px; }
  @media (min-width: 45em) {
    label.sm {
      display: inline;
      float: left;
      clear: none;
      width: 32%;
      margin-right: 1%; }
      label.sm:nth-of-type(3n+3) {
        float: right;
        clear: right; }
    label.md {
      display: inline;
      float: right;
      clear: none;
      width: 48%;
      width: calc((100% - 15px) / 2); }
    label.md:not(.last):first-child {
      float: left; }
    label.lg {
      width: 60%; } }
  label .label {
    font-size: 15px;
    font-size: 1rem;
    line-height: 24px;
    line-height: 1.6rem;
    line-height: 20px; }
    label .label.discreet {
      font-size: 12px;
      font-size: 0.8rem;
      line-height: 18px;
      line-height: 1.2rem;
      color: #b0b0b0; }
      label .label.discreet a {
        color: #b0b0b0; }
        .no-touch label .label.discreet a:hover {
          color: #00b2ce; }
  label .label-value {
    display: none; }
  label .optional {
    opacity: .7; }
  label .icon + .label {
    display: block;
    margin-top: 4px;
    margin-left: 0.4em; }
    .ie8 label .icon + .label {
      margin-left: 0; }
  label .icon-checkmark, label ul.checkmarks li, ul.checkmarks label li, label .hero .elm-content ul li, .hero .elm-content ul label li {
    width: 20px;
    height: 20px;
    line-height: 20px;
    text-align: center;
    border-radius: 2px;
    color: #00b2ce; }
    label .icon-checkmark:before, label ul.checkmarks li:before, ul.checkmarks label li:before, label .hero .elm-content ul li:before, .hero .elm-content ul label li:before {
      opacity: 0;
      transition: opacity .2s; }
    .ie8 label .icon-checkmark, .ie8 label ul.checkmarks li, ul.checkmarks .ie8 label li, .ie8 label .hero .elm-content ul li, .hero .elm-content ul .ie8 label li {
      display: none; }
  label .icon-gender-male:before,
  label .icon-gender-female:before {
    font-size: 28px; }
  label.checked .icon-checkmark:before, label.checked ul.checkmarks li:before, ul.checkmarks label.checked li:before, label.checked .hero .elm-content ul li:before, .hero .elm-content ul label.checked li:before, label:hover .icon-checkmark:before, label:hover ul.checkmarks li:before, ul.checkmarks label:hover li:before, label:hover .hero .elm-content ul li:before, .hero .elm-content ul label:hover li:before {
    opacity: 1; }
  label.checked .icon-gender-male,
  label.checked .icon-gender-female, label:hover .icon-gender-male,
  label:hover .icon-gender-female {
    color: #00b2ce;
    transition: color .2s; }

input,
textarea {
  font-size: 15px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.6rem;
  line-height: 18px;
  line-height: 1.2rem;
  display: block; }
  input:disabled,
  textarea:disabled {
    color: #ccc;
    background: #fff;
    opacity: 0.6; }

button {
  font-family: "Coloplast", arial, sans-serif;
  font-weight: 300;
  width: 100%;
  cursor: pointer; }
  @media (min-width: 30em) {
    button {
      width: auto;
      min-width: 210px; } }

.input-prefix .prefix {
  width: 50px;
  font-size: 1rem;
  line-height: 1.2rem;
  padding: 11px;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  background: #fff;
  border-right: 1px solid rgba(188, 188, 188, 0.2); }
  .lt-ie9 .input-prefix .prefix {
    width: 20%; }

.input-prefix [class*=input] {
  width: 85%;
  width: calc(100% - 50px);
  width: -moz-calc(100% - 50px);
  width: -webkit-calc(100% - 50px);
  overflow: hidden;
  text-overflow: ellipsis; }
  .lt-ie9 .input-prefix [class*=input] {
    width: 80%; }
  @media (min-width: 30em) {
    .input-prefix [class*=input] {
      min-width: 0; } }
  .input-prefix [class*=input] span {
    white-space: nowrap; }
  .input-prefix [class*=input] input {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0; }

.input-checkbox,
.input-radio {
  position: relative;
  min-height: 20px;
  padding: 11px 0;
  text-align: left;
  line-height: 18px;
  line-height: 1.2rem;
  cursor: pointer; }
  .input-checkbox input,
  .input-radio input {
    position: absolute;
    left: -9999em;
    opacity: 0; }
    .ie8 .input-checkbox input, .ie8
    .input-radio input {
      left: 0; }

.input-checkbox {
  padding: 0;
  padding-left: 25px; }
  .input-checkbox:before {
    position: absolute;
    content: '';
    top: 2px;
    left: 0;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    background: #fff; }
  .input-checkbox .icon {
    position: absolute;
    top: 5px;
    left: 0px;
    z-index: 5; }

.input-text .label, .input-textarea .label {
  position: absolute;
  top: 11px;
  left: 11px;
  transition: top .1s, font-size .1s, color .1s; }

.input-text.focus .label, .focus.input-textarea .label, .input-text.has-value .label, .has-value.input-textarea .label {
  top: -2px;
  color: #ccc;
  font-size: 10px;
  font-size: 0.66667rem;
  line-height: 18px;
  line-height: 1.2rem; }

.input-textarea textarea {
  display: block;
  height: 120px; }

.form-page:nth-child(n+2) {
  margin-top: 3.2rem; }

.form-row {
  clear: both; }

form .row h2, form .row nav.primary .teaser .h2, nav.primary .teaser form .row .h2 {
  margin-top: 0; }

@media (min-width: 45em) {
  .form-col {
    display: inline;
    float: left;
    width: 45%;
    width: calc((100% - 70px) / 2); }
    .form-col:nth-of-type(2n+2) {
      float: right; } }

.hide {
  display: none; }

.form-compact {
  overflow: hidden;
  margin-bottom: 15px;
  padding: 0;
  background: #fff;
  border-radius: 4px; }
  .form-compact label {
    margin-bottom: 0;
    border-radius: 0;
    border-bottom: 1px solid #e8e8e8; }
    .form-compact label.input-text:not(.focus) .label, .form-compact label.input-textarea:not(.focus) .label, .form-compact label.input-textarea:not(.focus) .label {
      color: #00b2ce; }
    .form-compact label.input-text .label, .form-compact label.input-textarea .label, .form-compact label.input-textarea .label {
      left: 10px; }
    .form-compact label.input-text input, .form-compact label.input-textarea input, .form-compact label.input-textarea input {
      padding-left: 10px;
      padding-right: 10px; }
  .form-compact .form-row:last-child label {
    border-bottom: 0; }

.ie8 select  {
  width: 100%;
  height: 40px;
  border: 1px solid #bcbcbc; }

.icon-input-group,
.checkbox-group.type-survey-4 {
  margin-top: 2.4rem; }

.radio-group,
.checkbox-group,
.select-group {
  clear: both;
  -webkit-touch-callout: none;
  user-select: none; }
  .radio-group:before, .radio-group:after,
  .checkbox-group:before,
  .checkbox-group:after,
  .select-group:before,
  .select-group:after {
    content: " ";
    display: table; }
  .radio-group:after,
  .checkbox-group:after,
  .select-group:after {
    *zoom: 1;
    clear: both; }
  .radio-group.input-buttons label,
  .checkbox-group.input-buttons label,
  .select-group.input-buttons label {
    width: auto;
    min-width: 100px;
    text-align: center; }
    .radio-group.input-buttons label .icon,
    .checkbox-group.input-buttons label .icon,
    .select-group.input-buttons label .icon {
      border: 1px solid #bcbcbc; }
    .no-touch .radio-group.input-buttons label:hover, .no-touch
    .checkbox-group.input-buttons label:hover, .no-touch
    .select-group.input-buttons label:hover {
      color: #00b2ce;
      background: white !important; }
  .radio-group[class*="type-survey-"] label,
  .checkbox-group[class*="type-survey-"] label,
  .select-group[class*="type-survey-"] label {
    border: 1px solid white;
    border-right-color: #f0f0f0;
    transition: color .15s ease-in-out, border .15s ease-in-out;
    margin-right: 0;
    border-radius: 0;
    padding: 0; }
    .radio-group[class*="type-survey-"] label:first-child,
    .checkbox-group[class*="type-survey-"] label:first-child,
    .select-group[class*="type-survey-"] label:first-child {
      border-top-left-radius: 8px;
      border-bottom-left-radius: 8px; }
    .radio-group[class*="type-survey-"] label:last-child,
    .checkbox-group[class*="type-survey-"] label:last-child,
    .select-group[class*="type-survey-"] label:last-child {
      border-top-right-radius: 8px;
      border-bottom-right-radius: 8px;
      border-right-color: white; }
    .radio-group[class*="type-survey-"] label:not(.has-icon).checked,
    .checkbox-group[class*="type-survey-"] label:not(.has-icon).checked,
    .select-group[class*="type-survey-"] label:not(.has-icon).checked {
      background: white;
      color: #00b2ce;
      border: 1px solid #00b2ce; }
  .radio-group.type-survey-10 label,
  .checkbox-group.type-survey-10 label,
  .select-group.type-survey-10 label {
    min-width: 10%; }
  .radio-group.type-survey-4 label,
  .checkbox-group.type-survey-4 label,
  .select-group.type-survey-4 label {
    min-width: 100%; }
    @media (min-width: 30em) {
      .radio-group.type-survey-4 label,
      .checkbox-group.type-survey-4 label,
      .select-group.type-survey-4 label {
        min-width: 25%; } }
    .radio-group.type-survey-4 label:not(.has-icon).checked,
    .checkbox-group.type-survey-4 label:not(.has-icon).checked,
    .select-group.type-survey-4 label:not(.has-icon).checked {
      background: white;
      color: #00b2ce;
      border: 1px solid #00b2ce;
      box-shadow: 0 0 0 1px #00b2ce, 0 0 15px rgba(0, 178, 206, 0.5);
      font-weight: bold; }
  .radio-group.type-survey-4 .label-container,
  .checkbox-group.type-survey-4 .label-container,
  .select-group.type-survey-4 .label-container {
    width: 100%;
    float: none;
    padding: 0;
    text-align: center;
    display: inline-block; }
    .radio-group.type-survey-4 .label-container label,
    .checkbox-group.type-survey-4 .label-container label,
    .select-group.type-survey-4 .label-container label {
      overflow: visible;
      padding: 0;
      width: 50px;
      padding-bottom: 50px;
      min-width: 0;
      border-radius: 135px; }
    .radio-group.type-survey-4 .label-container .label,
    .checkbox-group.type-survey-4 .label-container .label,
    .select-group.type-survey-4 .label-container .label {
      position: absolute;
      top: 15px;
      left: 0;
      text-align: left;
      padding-left: 70px;
      width: calc(100vw - 60px); }
  .radio-group.type-survey-4 .label-icon,
  .checkbox-group.type-survey-4 .label-icon,
  .select-group.type-survey-4 .label-icon {
    line-height: 0;
    display: inline-block;
    width: 100%; }
    .radio-group.type-survey-4 .label-icon img,
    .checkbox-group.type-survey-4 .label-icon img,
    .select-group.type-survey-4 .label-icon img {
      margin: 0;
      padding: 0;
      width: 100%;
      pointer-events: none; }
  @media (min-width: 30em) {
    .radio-group.type-survey-4 .label-container,
    .checkbox-group.type-survey-4 .label-container,
    .select-group.type-survey-4 .label-container {
      padding: 0 1%;
      float: left;
      width: 25%;
      display: block; }
      .radio-group.type-survey-4 .label-container label,
      .checkbox-group.type-survey-4 .label-container label,
      .select-group.type-survey-4 .label-container label {
        overflow: visible;
        padding: 0;
        width: 100%;
        padding-bottom: 100%;
        min-width: 0;
        border-radius: 135px; }
      .radio-group.type-survey-4 .label-container .label,
      .checkbox-group.type-survey-4 .label-container .label,
      .select-group.type-survey-4 .label-container .label {
        top: 100%;
        margin-top: 20px;
        left: 0;
        width: 100%;
        padding: 0;
        text-align: center; } }
  @media (min-width: 45em) {
    .radio-group.type-survey-4 .label-container,
    .checkbox-group.type-survey-4 .label-container,
    .select-group.type-survey-4 .label-container {
      float: left;
      width: 25%;
      padding: 0 5%; } }
  .radio-group label,
  .checkbox-group label,
  .select-group label {
    margin-right: 15px;
    font-family: "Coloplast", arial, sans-serif; }
    .radio-group label:last-child,
    .checkbox-group label:last-child,
    .select-group label:last-child {
      margin-right: 0; }

@media (min-width: 30em) {
  .icon-input-group {
    margin-bottom: 70px; } }

.input-group.compact-group {
  clear: both;
  -webkit-touch-callout: none;
  user-select: none; }
  .input-group.compact-group label {
    text-align: center; }
  @media (min-width: 30em) {
    .input-group.compact-group {
      display: table;
      table-layout: fixed;
      width: 100%;
      min-height: 40px;
      clear: both;
      margin-bottom: 15px; }
      .input-group.compact-group label {
        display: table-cell;
        float: none;
        width: 2%;
        min-width: 0;
        height: auto;
        line-height: normal;
        vertical-align: middle;
        padding: 0.4rem;
        margin: 0;
        border-radius: 0; }
        .input-group.compact-group label:first-child {
          border-radius: 4px 0 0 4px; }
        .input-group.compact-group label:last-child {
          border-radius: 0 4px 4px 0; }
        .input-group.compact-group label:nth-of-type(n+1) {
          border-left: 1px solid #f5f5f5; } }

@media (min-width: 30em) {
  .gender-mobility .radio-group {
    float: left;
    clear: none; }
  .gender-mobility .radio-group + .checkbox-group {
    clear: none;
    margin-left: 15px;
    width: calc(100% - (2 * (40px + 15px)));
    float: left; }
    .gender-mobility .radio-group + .checkbox-group label {
      width: 100%;
      text-align: left;
      white-space: nowrap; } }

.button-group .left {
  text-align: center; }
  @media (min-width: 30em) {
    .button-group .left {
      float: left !important;
      text-align: left; } }

.button-group .right {
  text-align: center; }
  @media (min-width: 30em) {
    .button-group .right {
      float: right !important;
      text-align: right; }
      .button-group .right button {
        text-align: center; } }

.button-group button {
  font-size: 22px;
  font-size: 1.46667rem;
  line-height: 30px;
  line-height: 2rem;
  line-height: 42px;
  line-height: 2.8rem; }
  @media (min-width: 30em) {
    .button-group button.left {
      float: left; }
    .button-group button.right {
      float: right; } }

.button-group .form-terms {
  margin-top: 10px;
  clear: both; }
  @media (min-width: 30em) {
    .button-group .form-terms {
      float: right; } }

.form-terms.above-button {
  margin-top: 0;
  display: inline-block;
  width: 100%; }

.form-step {
  display: none; }
  .form-step.active {
    display: block; }

.form-confirmation {
  display: none; }

.survey-group h4 + p {
  margin-top: -10px; }

.form-recipt {
  display: none; }

.graph-indicator {
  display: inline-block;
  background: url("../img/sprites/graph.png") no-repeat;
  overflow: hidden;
  text-align: center;
  width: 200px;
  height: 200px;
  position: relative; }
  .graph-indicator span {
    position: relative;
    font-family: "Coloplast", arial, sans-serif;
    font-weight: bold;
    font-size: 60px;
    color: #00b2ce;
    top: 85px; }
  .graph-indicator--1 {
    background-position: -0px -0px; }
    .graph-indicator--1 span:after {
      content: '1'; }
  .graph-indicator--2 {
    background-position: -200px -0px; }
    .graph-indicator--2 span:after {
      content: '2'; }
  .graph-indicator--3 {
    background-position: -400px -0px; }
    .graph-indicator--3 span:after {
      content: '3'; }
  .graph-indicator--4 {
    background-position: -0px -200px; }
    .graph-indicator--4 span:after {
      content: '4'; }
  .graph-indicator--5 {
    background-position: -200px -200px; }
    .graph-indicator--5 span:after {
      content: '5'; }
  .graph-indicator--6 {
    background-position: -400px -200px; }
    .graph-indicator--6 span:after {
      content: '6'; }
  .graph-indicator--7 {
    background-position: -0px -400px; }
    .graph-indicator--7 span:after {
      content: '7'; }
  .graph-indicator--8 {
    background-position: -200px -400px; }
    .graph-indicator--8 span:after {
      content: '8'; }
  .graph-indicator--9 {
    background-position: -400px -400px; }
    .graph-indicator--9 span:after {
      content: '9'; }
  .graph-indicator--10 {
    background-position: -0px -600px; }
    .graph-indicator--10 span:after {
      content: '10'; }

.survey-legends {
  font-size: 12px;
  font-size: 0.8rem;
  line-height: 18px;
  line-height: 1.2rem;
  margin-bottom: 0.4rem; }
  .survey-legends:before, .survey-legends:after {
    content: " ";
    display: table; }
  .survey-legends:after {
    *zoom: 1;
    clear: both; }
  .survey-legends .left {
    float: left; }
  .survey-legends .right {
    float: right; }

.disclaimer {
  margin-top: 0.8rem;
  font-size: 12px;
  font-size: 0.8rem;
  line-height: 18px;
  line-height: 1.2rem;
  line-height: 12px;
  line-height: 0.8rem; }
  .disclaimer a {
    color: inherit;
    text-decoration: underline; }

.input-help {
  position: relative;
  display: block;
  font-size: 12px;
  margin-top: 0;
  top: -10px;
  line-height: 1.5;
  clear: both; }

.input-select {
  display: block;
  min-width: 100%;
  max-width: 100%; }
  @media (min-width: 30em) {
    .input-select {
      display: inline-block; } }

@media (min-width: 30em) {
  .select-group .input-select {
    min-width: 0; } }

.dk-select, .dk-select-multi {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  font-size: 15px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.6rem;
  line-height: 43px;
  width: 100%;
  cursor: pointer; }

.dk-selected {
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  position: relative;
  background-color: white;
  border-radius: 4px;
  padding: 0 1.5em 0 11px;
  text-overflow: ellipsis;
  max-height: 39px; }
  .dk-selected:before {
    position: absolute;
    display: block;
    right: 0;
    top: 50%;
    margin: -0.7em 11px 0 0;
    font-size: 1em;
    color: #00b2ce; }
  .input-error .dk-selected {
    background: #e87f7f;
    color: #fff; }

.dk-selected-disabled {
  color: #ccc;
  max-height: 39px; }

.dk-select .dk-select-options {
  position: absolute;
  display: none;
  left: 0; }

.dk-select-open-up .dk-select-options {
  border-radius: 4px 4px 0 0;
  border-bottom: 3px solid #00b2ce;
  margin-bottom: -1px;
  bottom: 100%; }

.dk-select-open-down .dk-select-options {
  border-radius: 0 0 4px 4px;
  border-top: 3px solid #00b2ce;
  margin-top: -1px;
  top: 100%; }

.dk-select-multi .dk-select-options {
  max-height: 10em; }

.dk-select-options {
  width: 100%;
  z-index: 100;
  background-color: white;
  border-radius: 4px;
  overflow-x: hidden;
  overflow-y: auto;
  max-height: 8.5em;
  list-style: none;
  padding: 0;
  margin: 0;
  opacity: 0;
  transition: opacity .2s; }
  .ic-tool-survey .dk-select-options {
    max-height: 10.5em; }

.dk-option-selected {
  background-color: #f0f0f0; }

.dk-select-options-highlight .dk-option-selected {
  background-color: transparent;
  color: inherit; }

.dk-option {
  margin-left: 0;
  padding: 0.5em 11px;
  font-size: 12px;
  font-size: 0.8rem;
  line-height: 18px;
  line-height: 1.2rem;
  transition: background-color .2s; }

.dk-select-options .dk-option-highlight {
  background-color: #f0f0f0; }

.dk-select-options .dk-option-disabled {
  color: #ccc;
  background-color: transparent; }

.dk-optgroup {
  padding: 0.25em 0;
  margin-top: 0.25em; }
  .dk-optgroup + .dk-option {
    margin-top: 0.25em; }
  .dk-optgroup + .dk-optgroup {
    border-top-width: 0;
    margin-top: 0; }
  .dk-optgroup:nth-child(2) {
    padding-top: 0;
    border-top: none;
    margin-top: 0; }
  .dk-optgroup:last-child {
    border-bottom-width: 0;
    margin-bottom: 0;
    padding-bottom: 0; }

.dk-optgroup-label {
  padding: 0 0.5em 0.25em;
  font-weight: bold;
  width: 100%; }

.dk-optgroup-options {
  list-style: none;
  padding-left: 0; }
  .dk-optgroup-options li {
    padding-left: 1.2em; }

.dk-select-open-up .dk-selected {
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.dk-select-open-down .dk-selected {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.dk-select-open-up .dk-selected:before,
.dk-select-open-down .dk-selected:before {
  margin-top: -0.3em; }

.dk-select-open-up .dk-select-options,
.dk-select-open-down .dk-select-options,
.dk-select-multi:focus .dk-select-options {
  display: block;
  opacity: 1; }

.dk-select-multi:hover,
.dk-select-multi:focus,
.dk-selected:focus {
  outline: none; }

.dk-select-disabled {
  opacity: 0.6;
  color: #ccc;
  cursor: not-allowed; }

select[data-dkcacheid] {
  visibility: hidden;
  width: 0;
  height: 0;
  position: absolute; }

.click-to-edit label:not(.over),
.click-to-edit label:not(.over) input, .click-to-edit label:not(.over).input-checkbox:before {
  background-color: transparent; }

.click-to-edit label:not(.over).input-text.has-value .label, .click-to-edit label.input-textarea:not(.over).has-value .label,
.click-to-edit label:not(.over).input-textarea.has-value .label {
  opacity: 0; }

.click-to-edit label:not(.over).checked .icon {
  color: #707070; }

.click-to-edit label.input-text.over:before, .click-to-edit label.over.input-textarea:before,
.click-to-edit label.input-textarea.over:before {
  position: absolute;
  right: 0.6em;
  top: 50%;
  margin-top: -0.5em;
  color: #00b2ce; }

.input-text.input-error .error, .input-error.input-textarea .error,
.input-textarea.input-error .error {
  background-color: #e87f7f; }

.input-text.input-error .label, .input-error.input-textarea .label,
.input-textarea.input-error .label {
  color: #fff !important; }

.input-checkbox .label {
  font-size: 0.8rem; }

.input-checkbox.input-error:before {
  background-color: #e87f7f; }

.input-checkbox.input-error .icon-checkmark, .input-checkbox.input-error ul.checkmarks li, ul.checkmarks .input-checkbox.input-error li, .input-checkbox.input-error .hero .elm-content ul li, .hero .elm-content ul .input-checkbox.input-error li {
  border-color: #fff; }

.input-buttons .input-checkbox.input-error,
.input-buttons .input-radio.input-error,
.icon-buttons .input-checkbox.input-error,
.icon-buttons .input-radio.input-error {
  background: #e87f7f;
  color: #fff; }

.button--cancel {
  display: block;
  background: none !important; }
  .button--cancel [class*=icon] {
    margin-right: 10px;
    margin-top: 3px; }
  .no-touch .button--cancel:hover {
    color: #00b2ce !important; }

.iconize {
  position: relative;
  display: inline-block;
  cursor: pointer;
  width: 30px;
  height: 30px;
  line-height: 30px;
  border-radius: 30px;
  background: #00b2ce;
  color: #fff !important;
  text-decoration: none !important;
  text-align: center;
  font-family: "Coloplast", arial, sans-serif;
  font-weight: bold;
  font-size: 16px;
  vertical-align: middle;
  transition: background 0.5s linear; }
  .iconize--active {
    background: #bcbcbc; }

.add-link {
  text-decoration: none !important;
  display: inline-block; }
  .add-link .iconize {
    line-height: 26px;
    margin-right: 5px;
    font-size: 17px; }
  .add-link + * {
    padding-top: 20px; }

.help-sibling {
  padding-right: 40px; }

.help__icon {
  margin-top: -38px;
  float: right;
  display: block; }
  @media (min-width: 45em) {
    .help__icon {
      margin-top: -45px; } }

input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 50px #fff inset;
  -webkit-text-fill-color: #707070; }
  input:-webkit-autofill.error {
    -webkit-box-shadow: 0 0 0 50px #fff inset;
    -webkit-text-fill-color: #707070; }

input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 50px #fff inset;
  -webkit-text-fill-color: #707070; }

#colorbox #form-order-sample-overlay {
  display: block; }

.form-order-sample {
  text-align: left;
  background: #f5f5f5;
  overflow: hidden; }
  .form-order-sample .button-group button {
    width: 100%; }

#signup-form-trigger {
  color: #fff;
  background: #00b2ce;
  margin-bottom: -rhythm(6); }
  #signup-form-trigger h2, #signup-form-trigger nav.primary .teaser .h2, nav.primary .teaser #signup-form-trigger .h2,
  #signup-form-trigger p,
  #signup-form-trigger a {
    color: inherit; }
  #signup-form-trigger a.trigger {
    display: none;
    transition: all .1s;
    text-decoration: none; }
    #signup-form-trigger a.trigger .icon {
      transition: all .1s; }
  @media (min-width: 55em) {
    #signup-form-trigger {
      position: fixed;
      left: 0;
      top: 30%;
      z-index: 20;
      background: transparent; }
      #signup-form-trigger a.trigger {
        display: block;
        transition: background .15s ease-in-out;
        padding: 10px;
        font-size: 12px;
        font-size: 0.8rem;
        line-height: 18px;
        line-height: 1.2rem;
        line-height: normal;
        font-weight: 600;
        text-align: center;
        z-index: 20;
        color: inherit;
        background: #00b2ce;
        border-radius: 0 4px 4px 0;
        transform: scale(0.6) translate(-6px, 0);
        transform-origin: center left;
        opacity: .6; }
        .no-touch #signup-form-trigger a.trigger:hover {
          background: #009cb5; }
        #signup-form-trigger a.trigger .icon {
          display: block;
          text-align: center;
          font-size: 28px;
          line-height: 36px; }
        #signup-form-trigger a.trigger span:nth-of-type(2) {
          display: block;
          position: relative;
          opacity: 0;
          height: 0;
          overflow: hidden; }
        .no-touch #signup-form-trigger a.trigger:hover {
          transform: scale(1) translate(0, 0);
          opacity: 1; }
          .no-touch #signup-form-trigger a.trigger:hover span:nth-of-type(2) {
            opacity: 1;
            height: auto; } }
  @media (min-width: 70.66667em) {
    #signup-form-trigger a.trigger {
      transform: scale(1) translate(0, 0);
      padding: 10px;
      font-size: 12px;
      font-size: 0.8rem;
      line-height: 18px;
      line-height: 1.2rem;
      opacity: 1; }
      #signup-form-trigger a.trigger .icon {
        font-size: 28px;
        line-height: 36px; }
      #signup-form-trigger a.trigger span:nth-of-type(2) {
        opacity: 1;
        height: auto; } }

.address-fields {
  max-height: 2000px;
  opacity: 1;
  overflow: visible;
  transition: all ease-in-out 0.3s; }
  .address-fields.hidden {
    max-height: 0;
    opacity: 0;
    overflow: hidden; }

.lookup-fields.hidden,
.lookup-fields .hidden {
  display: none; }

#addressLookupButton {
  transition: background-color .15s ease-in-out; }
  #addressLookupButton.loading {
    background-image: url(/assets/img/animatedwait.gif);
    background-repeat: no-repeat;
    background-position: 10px 50%; }

.dropdown-holder {
  position: relative; }
  .dropdown-holder:after {
    display: block;
    content: "";
    clear: both; }

.autocomplete-dropdown {
  transition: all ease-in-out 0.3s;
  max-height: 1000px;
  z-index: 99;
  position: absolute;
  left: 1em;
  right: 1em;
  top: 100%;
  margin-top: -15px;
  background: #fff; }
  @media (min-width: 45em) {
    .autocomplete-dropdown {
      width: 35em;
      max-width: 173%; } }
  .autocomplete-dropdown .no-results {
    display: block;
    text-align: center;
    font-size: 1em;
    font-weight: bold;
    padding: 10px; }
  .autocomplete-dropdown #address-results {
    border-top: 3px solid #00b2ce; }
  .autocomplete-dropdown ul {
    margin: 0;
    padding: 10px 0;
    list-style: none;
    max-height: 10em;
    overflow: auto;
    outline: none; }
  .autocomplete-dropdown li {
    font-size: 0.8rem;
    line-height: 1.2rem;
    cursor: pointer;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    padding: 10px;
    margin: 0;
    transition: background-color .2s; }
    .autocomplete-dropdown li:first-child {
      border: none; }
    .autocomplete-dropdown li:hover, .autocomplete-dropdown li.selected {
      background: #f0f0f0; }
  .autocomplete-dropdown .btns {
    padding: 10px;
    overflow: hidden;
    border-top: 1px solid #e7e7e7; }
    .autocomplete-dropdown .btns button {
      min-width: 0;
      outline: none;
      width: auto; }
    .autocomplete-dropdown .btns .cancel-button {
      background: #707070;
      float: left; }
      .autocomplete-dropdown .btns .cancel-button:hover {
        background: #bcbcbc; }
    .autocomplete-dropdown .btns .continue-button {
      float: right; }
  .autocomplete-dropdown.hidden {
    max-height: 0;
    overflow: hidden; }

.skip-link {
  font-size: 0.9em;
  display: inline-block;
  margin: 5px 0 10px;
  vertical-align: top; }
  .skip-link:hover {
    text-decoration: none; }

.form-signup-cta {
  text-align: left;
  color: #fff;
  background: #00b2ce;
  padding: 2rem;
  cursor: pointer;
  display: none; }
  .form-signup-cta h2, .form-signup-cta nav.primary .teaser .h2, nav.primary .teaser .form-signup-cta .h2,
  .form-signup-cta p,
  .form-signup-cta a {
    color: inherit; }
  .form-signup .form-signup-cta {
    margin: 2.4rem -2rem 0; }

.form-terms {
  margin-top: 15px; }
  .form-terms .label {
    font-size: 12px;
    font-size: 0.8rem;
    line-height: 18px;
    line-height: 1.2rem; }
    .form-terms .label a {
      color: #707070; }
      .no-touch .form-terms .label a:hover {
        color: #00b2ce; }

.form-signup {
  text-align: left; }
  .form-signup h1:first-child,
  .form-signup h2:first-child,
  .form-signup nav.primary .teaser .h2:first-child, nav.primary .teaser
  .form-signup .h2:first-child {
    margin-top: 0; }
  .form-signup .form-compact {
    margin-bottom: 15px; }
    .form-signup .form-compact label {
      margin-bottom: 0; }
  .form-signup .button-group button {
    width: 100%; }

.form-overlay,
.popup-overlay {
  width: 100%;
  max-width: 800px;
  margin: 0 auto; }

#colorbox .slim-form {
  display: block; }

.steps {
  display: block;
  font-size: 12px;
  clear: both; }

.form-signup-background-wrapper {
  opacity: 0.4;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; }
  .ie8 .form-signup-background-wrapper {
    position: absolute;
    top: 0;
    right: 0;
    width: 325px;
    height: 100%;
    overflow: hidden; }
    .ie8 .form-signup-background-wrapper .form-signup-background {
      position: absolute;
      top: 0;
      right: 0;
      width: 100vw;
      height: 100%; }

#signup-form-hero {
  background: #e7e7e7;
  overflow: hidden;
  padding: 0 2rem 2rem;
  margin: 3rem -2rem 0;
  box-shadow: inset 0 6px 6px -5px #b5b5b5; }
  .ie8 #signup-form-hero {
    right: 0; }
  #signup-form-hero form, #signup-form-hero .form-confirmation {
    position: relative; }
  #signup-form-hero .hcp-link {
    background: url(../img/icons/hcp-login-icon.PNG) no-repeat -5px 25px;
    padding-left: 30px;
    background-size: 32px;
    margin-top: 20px;
    padding-top: 25px;
    position: relative; }
    #signup-form-hero .hcp-link small {
      line-height: 16px; }
  #signup-form-hero form + .hcp-link:before {
    content: "";
    height: 1px;
    position: absolute;
    top: 0;
    left: -2rem;
    right: -2rem;
    background: #fff; }
  #signup-form-hero .signup-cta-content {
    display: block; }
  @media (min-width: 55em) {
    #signup-form-hero {
      transition: width .15s ease-in-out; }
      #signup-form-hero .form-signup-background-wrapper {
        position: absolute;
        top: 0;
        left: 0;
        width: 325px;
        height: 100%;
        overflow: hidden;
        background: white;
        transition: width .15s ease-in-out; }
        #signup-form-hero .form-signup-background-wrapper .form-signup-background {
          position: absolute;
          top: 0;
          left: calc(-1 * (50% - (325px / 2)));
          width: 100vw;
          height: 100%;
          background-size: cover;
          background-position: 50% 50%;
          opacity: 0.4; } }
      @media (min-width: 55em) and (min-width: 70.66667em) {
        #signup-form-hero .form-signup-background-wrapper .form-signup-background {
          left: calc(-1 * (50vw + (70.67em / 2) - 325px - 2rem)); } }
  #signup-form-hero label {
    margin-bottom: 10px; }
  #signup-form-hero .form-compact {
    margin-bottom: 10px; }
    #signup-form-hero .form-compact label {
      margin-bottom: 0; }
  #signup-form-hero .input-buttons label {
    min-height: 0;
    padding-left: 28px;
    padding-right: 8px;
    line-height: 0.8rem; }
  #signup-form-hero .icon-buttons label {
    width: 34px;
    margin-right: 10px; }
    #signup-form-hero .icon-buttons label:last-child {
      margin-right: 0; }
  #signup-form-hero .input-buttons label,
  #signup-form-hero .icon-buttons label {
    min-height: 34px;
    height: 34px;
    line-height: 34px; }
    #signup-form-hero .input-buttons label .icon-gender-male:before,
    #signup-form-hero .input-buttons label .icon-gender-female:before,
    #signup-form-hero .icon-buttons label .icon-gender-male:before,
    #signup-form-hero .icon-buttons label .icon-gender-female:before {
      font-size: 22px; }
  @media (min-width: 30em) {
    #signup-form-hero .gender-mobility .radio-group + .checkbox-group {
      margin-left: 10px;
      width: calc(100% - (2 * (34px + 10px))); } }
  #signup-form-hero.inactive form {
    display: none; }
  #signup-form-hero.inactive .hcp-link {
    margin-top: 0; }
    #signup-form-hero.inactive .hcp-link:before {
      display: none; }
  #signup-form-hero .dk-selected {
    color: #00b2ce; }
  @media (min-width: 55em) {
    #signup-form-hero {
      position: absolute;
      display: flex;
      flex-direction: column;
      top: 0;
      right: 2rem;
      width: 325px;
      padding: 30px;
      margin: 0;
      overflow: visible;
      height: 100%;
      background: rgba(255, 255, 255, 0.7);
      align-items: center;
      justify-content: center;
      box-shadow: none; }
      #signup-form-hero form h1,
      #signup-form-hero form h2,
      #signup-form-hero form nav.primary .teaser .h2, nav.primary .teaser
      #signup-form-hero form .h2 {
        margin-bottom: 1.2rem; }
      #signup-form-hero .button-group {
        margin-top: 0.8rem; }
      #signup-form-hero .hcp-link {
        padding-top: 0;
        background-position: -5px 0; }
        #signup-form-hero .hcp-link:before {
          display: none; }
      #signup-form-hero button {
        width: 100%;
        float: right;
        margin-left: 0;
        margin-right: 0;
        clear: none; }
      #signup-form-hero .disclaimer {
        width: 100%;
        float: right;
        margin-left: 0;
        margin-right: 0;
        clear: none;
        margin-top: 0.8rem;
        text-align: center; }
      #signup-form-hero form, #signup-form-hero .form-signup-external {
        max-width: 265px;
        width: 100%; }
      #signup-form-hero.inactive {
        height: auto;
        top: auto;
        bottom: 0;
        padding: 20px 30px; }
        #signup-form-hero.inactive > form {
          display: none; } }
  @media (min-width: 0) and (max-width: 55em) {
    #signup-form-hero form {
      padding: 30px 0; } }

.form-signup-external {
  z-index: 5; }
  .form-signup-external::after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 0) and (max-width: 55em) {
    .form-signup-external {
      padding: 30px 0; } }

.form-signup-external a {
  position: relative;
  z-index: 6; }

@media (min-width: 55em) {
  .form-signup-external {
    display: block; } }

.form-signup-cta a {
  color: white !important;
  text-decoration: none !important; }
  .form-signup-cta a span:not(.icon) {
    text-decoration: underline; }
  .form-signup-cta a > .icon {
    margin: 7px 0 0 3px;
    display: inline-block;
    vertical-align: top; }
    .form-signup-cta a > .icon:before {
      vertical-align: top; }

.grid-list {
  overflow: visible; }
  .grid-list:after, .grid-list:before {
    content: "";
    display: table;
    clear: both; }
  .grid-list ul {
    list-style: none;
    transition: height .3s ease-in-out; }
  .grid-list li {
    color: #707070;
    margin-left: 0;
    width: 100%; }
    @media (min-width: 55em) {
      .grid-list li {
        width: 50%; } }
    @media (min-width: 640px) {
      .grid-list li:nth-child(n+2) {
        margin-top: 2.4rem; } }
  .grid-list .elm-image {
    position: relative;
    margin-left: -2rem;
    margin-right: -2rem; }
    .grid-list .elm-image img {
      width: 100%;
      min-height: 100%;
      display: block; }
  .ie8 .grid-list .elm-content, .ie8
  .grid-list .elm-content-over {
    padding-top: 10px;
    background: #333; }
  .grid-list .elm-content .category,
  .grid-list .elm-content-over .category {
    margin: 0.8rem 0;
    color: inherit; }
  .grid-list .elm-content h2, .grid-list .elm-content nav.primary .teaser .h2, nav.primary .teaser .grid-list .elm-content .h2,
  .grid-list .elm-content-over h2,
  .grid-list .elm-content-over nav.primary .teaser .h2, nav.primary .teaser
  .grid-list .elm-content-over .h2 {
    margin: 0.4rem 0; }
  .grid-list .elm-content p,
  .grid-list .elm-content a.more-link,
  .grid-list .elm-content-over p,
  .grid-list .elm-content-over a.more-link {
    margin: 0.4rem 0; }
  .grid-list .elm-content a.more-link,
  .grid-list .elm-content-over a.more-link {
    display: block;
    border-top: 1px solid #bcbcbc;
    border-bottom: 1px solid #bcbcbc;
    text-indent: -999em; }
    .grid-list .elm-content a.more-link, .grid-list .elm-content a.more-link:hover, .grid-list .elm-content a.more-link:active,
    .grid-list .elm-content-over a.more-link,
    .grid-list .elm-content-over a.more-link:hover,
    .grid-list .elm-content-over a.more-link:active {
      color: inherit !important; }
    .grid-list .elm-content a.more-link .icon,
    .grid-list .elm-content-over a.more-link .icon {
      display: inline;
      float: right;
      font-size: inherit;
      line-height: inherit;
      text-indent: 999em; }
    .grid-list .elm-content a.more-link:hover,
    .grid-list .elm-content-over a.more-link:hover {
      color: #00b2ce; }
  .grid-list .elm-content img.blur,
  .grid-list .elm-content-over img.blur {
    display: none; }
  .grid-list .elm-content a.more-link {
    text-indent: 0 !important;
    text-decoration: none !important; }
    .grid-list .elm-content a.more-link .icon {
      float: none !important;
      text-decoration: none !important; }
  .grid-list .elm-content-over {
    position: absolute;
    left: -9999em; }
  @media (min-width: 45em) {
    .grid-list li {
      position: relative;
      margin-bottom: 1.0989%;
      color: #fff;
      overflow: hidden;
      /*
          @include float-span(4);

          &.last {
              margin-right:0 !important;
          }
      */ }
      .grid-list li.pos-1 {
        width: 32.60073%;
        float: left;
        margin-right: -100%;
        margin-left: 0;
        clear: left; }
      .grid-list li.pos-2 {
        width: 32.60073%;
        float: left;
        margin-right: -100%;
        margin-left: 33.69963%;
        clear: none; }
      .grid-list li.pos-3 {
        width: 32.60073%;
        float: right;
        margin-left: 0;
        margin-right: 0;
        clear: right; }
      .grid-list li:before {
        content: "";
        display: block;
        padding-top: 80.74534%; }
      .grid-list li:nth-child(n+2) {
        margin-top: 0; }
    .grid-list .elm-image {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      margin: 0;
      margin-bottom: 25px; }
      .grid-list .elm-image img {
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: auto;
        min-width: 100%;
        min-height: 100%; }
    .grid-list .elm-content,
    .grid-list .elm-content-over {
      position: absolute;
      width: 100%;
      min-height: 100px;
      bottom: 0;
      z-index: 5;
      overflow: hidden; }
      .grid-list .elm-content .category,
      .grid-list .elm-content-over .category {
        margin: 0.8rem 0 0.4rem; }
      .grid-list .elm-content h2, .grid-list .elm-content nav.primary .teaser .h2, nav.primary .teaser .grid-list .elm-content .h2,
      .grid-list .elm-content-over h2,
      .grid-list .elm-content-over nav.primary .teaser .h2, nav.primary .teaser
      .grid-list .elm-content-over .h2 {
        /*
        display:flex;
        align-items: center;
        height:50px;
        */
        margin: 0.8rem 0 0.4rem;
        color: inherit;
        font-size: 18px;
        font-size: 1.2rem;
        line-height: 24px;
        line-height: 1.6rem;
        line-height: 25px;
        line-height: 1.66667rem; }
      .grid-list .elm-content p,
      .grid-list .elm-content a.more-link,
      .grid-list .elm-content-over p,
      .grid-list .elm-content-over a.more-link {
        display: none; }
      .grid-list .elm-content a.more-link,
      .grid-list .elm-content-over a.more-link {
        margin: 0;
        border-bottom: 0;
        color: inherit; }
      .grid-list .elm-content .category,
      .grid-list .elm-content h2,
      .grid-list .elm-content nav.primary .teaser .h2, nav.primary .teaser
      .grid-list .elm-content .h2,
      .grid-list .elm-content p,
      .grid-list .elm-content > a,
      .grid-list .elm-content-over .category,
      .grid-list .elm-content-over h2,
      .grid-list .elm-content-over nav.primary .teaser .h2, nav.primary .teaser
      .grid-list .elm-content-over .h2,
      .grid-list .elm-content-over p,
      .grid-list .elm-content-over > a {
        margin-left: 9.31677%;
        margin-right: 9.31677%; }
    .grid-list .elm-content {
      background: rgba(0, 0, 0, 0.4);
      text-shadow: 0 0 2px rgba(0, 0, 0, 0.3); }
      .grid-list .elm-content img.blur {
        display: block;
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        max-width: 100%;
        height: auto;
        filter: blur(10px) brightness(0.85);
        transform: scale(1.06);
        z-index: -2; }
        .no-cssfilters .grid-list .elm-content img.blur {
          display: none; }
    .grid-list .elm-content-over {
      z-index: 10;
      background: #fff;
      color: #707070;
      max-height: 100%;
      left: 0;
      bottom: -100%;
      transition: bottom .35s ease; }
      .grid-list .elm-content-over .category {
        display: none; }
      .grid-list .elm-content-over h2, .grid-list .elm-content-over nav.primary .teaser .h2, nav.primary .teaser .grid-list .elm-content-over .h2 {
        display: block;
        height: auto;
        color: #00b2ce;
        font-size: 15px;
        font-size: 1rem;
        line-height: 24px;
        line-height: 1.6rem;
        margin-bottom: 0;
        transform: translate3d(0, 20%, 0);
        transition: transform 0.35s ease;
        transition-delay: 0.2s; }
      .grid-list .elm-content-over p {
        display: block;
        margin-top: 0;
        font-size: 12px;
        font-size: 0.8rem;
        line-height: 18px;
        line-height: 1.2rem; }
      .grid-list .elm-content-over p,
      .grid-list .elm-content-over a.more-link {
        margin: 0.4rem 9%;
        transform: translate3d(0, 20%, 0);
        transition: transform 0.45s ease;
        transition-delay: 0.3s; }
      .grid-list .elm-content-over a.more-link {
        display: block;
        transition-delay: 0.4s; }
    .no-touch .grid-list li.over {
      cursor: pointer; }
      .no-touch .grid-list li.over .elm-content-over {
        bottom: 0; }
        .no-touch .grid-list li.over .elm-content-over h2, .no-touch .grid-list li.over .elm-content-over nav.primary .teaser .h2, nav.primary .teaser .no-touch .grid-list li.over .elm-content-over .h2,
        .no-touch .grid-list li.over .elm-content-over p,
        .no-touch .grid-list li.over .elm-content-over > a {
          transform: translate3d(0, 0, 0); } }

@media (min-width: 45em) and (min-width: 55em) {
  .grid-list .elm-content h2, .grid-list .elm-content nav.primary .teaser .h2, nav.primary .teaser .grid-list .elm-content .h2 {
    font-size: 22px;
    font-size: 1.46667rem;
    line-height: 30px;
    line-height: 2rem;
    line-height: 25px;
    line-height: 1.66667rem; } }

.grid-list .type-video a.more-link .icon {
  font-size: inherit;
  line-height: inherit;
  color: inherit; }

@media (min-width: 45em) {
  .grid-list .type-video .elm-content {
    padding-right: 25%; }
    .grid-list .type-video .elm-content a.more-link {
      position: absolute;
      display: inline-block;
      border-top: 0;
      right: 9.31677%;
      top: 50%;
      margin-top: -25px; }
      .grid-list .type-video .elm-content a.more-link .icon {
        font-size: 50px;
        font-size: 3.33333rem;
        line-height: 54px;
        line-height: 3.6rem; } }

@media (min-width: 45em) {
  .grid-list .list-items:not(.single-col) .vid-2x1 {
    /*
                        @include float-span(8);
        */ }
    .grid-list .list-items:not(.single-col) .vid-2x1.pos-1 {
      width: 66.30037%;
      float: left;
      margin-right: -100%;
      margin-left: 0;
      clear: left; }
    .grid-list .list-items:not(.single-col) .vid-2x1.pos-2 {
      width: 66.30037%;
      float: right;
      margin-left: 0;
      margin-right: 0;
      clear: right; }
    .grid-list .list-items:not(.single-col) .vid-2x1:before {
      padding-top: 39.33434%; }
    .grid-list .list-items:not(.single-col) .vid-2x1 .category,
    .grid-list .list-items:not(.single-col) .vid-2x1 h2,
    .grid-list .list-items:not(.single-col) .vid-2x1 nav.primary .teaser .h2, nav.primary .teaser
    .grid-list .list-items:not(.single-col) .vid-2x1 .h2,
    .grid-list .list-items:not(.single-col) .vid-2x1 p,
    .grid-list .list-items:not(.single-col) .vid-2x1 a.more-link {
      margin-left: 4.53858%;
      margin-right: 4.53858%; }
    .grid-list .list-items:not(.single-col) .vid-2x1 .elm-content a.more-link {
      right: 30px; } }

@media (min-width: 45em) {
  .grid-list .list-items.single-col .type-video .elm-image img,
  .grid-list .list-items.single-col .type-video .elm-content img {
    margin-left: -50%;
    width: 200%;
    max-width: none; } }

.grid-list .type-survey {
  background: #f5f5f5;
  box-shadow: inset 0 0 0 1px #bcbcbc; }

.grid-list .type-cta {
  background: #00b2ce;
  cursor: pointer; }
  .grid-list .type-cta .elm-content {
    bottom: 0;
    background: transparent;
    padding-bottom: 0.8rem; }
    .grid-list .type-cta .elm-content h2, .grid-list .type-cta .elm-content nav.primary .teaser .h2, nav.primary .teaser .grid-list .type-cta .elm-content .h2,
    .grid-list .type-cta .elm-content p,
    .grid-list .type-cta .elm-content a {
      color: #fff;
      text-shadow: none;
      display: inline-block; }
    .grid-list .type-cta .elm-content a .icon {
      float: right !important; }
    .grid-list .type-cta .elm-content h2, .grid-list .type-cta .elm-content nav.primary .teaser .h2, nav.primary .teaser .grid-list .type-cta .elm-content .h2 {
      font-size: 30px;
      line-height: 35px;
      font-weight: 300;
      margin-bottom: 25px; }
    .grid-list .type-cta .elm-content a {
      font-size: 18px;
      font-size: 1.2rem;
      line-height: 24px;
      line-height: 1.6rem;
      display: block;
      font-weight: 300;
      text-decoration: none; }
  @media (min-width: 0) and (max-width: 45em) {
    .grid-list .type-cta {
      padding: 2rem; } }

.isotope .isotope-item {
  transition-property: opacity;
  transition-duration: 0.3s;
  transition-timing-function: ease-in-out;
  max-width: 100% !important; }
  @media (max-width: 640px) {
    .isotope .isotope-item {
      transform: none !important;
      position: relative !important;
      margin-bottom: 2.4rem;
      height: auto !important; }
      .isotope .isotope-item:last-child {
        margin-bottom: 0; }
      .isotope .isotope-item.isotope-hidden {
        display: none !important; } }
  @media (min-width: 45em) {
    .isotope .isotope-item {
      transition-property: transform, opacity; } }

@media (max-width: 737px) {
  .isotope .isotope-item {
    margin-right: 0;
    width: 100% !important; }
    .isotope .isotope-item.type-video.vid-2x1 {
      height: auto !important; }
      .isotope .isotope-item.type-video.vid-2x1 .elm-image {
        height: 100% !important;
        width: 100%;
        margin: 0; } }

@media (max-width: 640px) {
  .isotope .isotope-item, .isotope {
    height: auto !important; }
  .isotope .isotope-item {
    -webkit-transform: none !important;
        -ms-transform: none !important;
            transform: none !important;
    position: relative !important;
    margin-bottom: 2.4rem; }
    .isotope .isotope-item.isotope-hidden {
      display: none !important; } }

header#page-header {
  min-height: 58px;
  z-index: 10;
  background-color: #fff;
  background-image: linear-gradient(to bottom, #fff 0%, #fff 50%, #fefefe 51%, #f3f3f3 100%);
  background-size: 100% 58px;
  background-repeat: no-repeat;
  /*
      background:

          linear-gradient(to bottom, #fff 0%, #fff 50%, #fefefe 51%, #f3f3f3 100%),
          #fff;
  */ }
  header#page-header .brand-primary {
    display: inline;
    float: left;
    width: 150px;
    margin-top: 0;
    margin-bottom: 0;
    margin-right: -150px;
    padding-top: 15px;
    color: #004990; }
    header#page-header .brand-primary span {
      display: block;
      background-image: url(../img/sprites.png);
      background-position: -89px 0px;
      width: 120px;
      height: 28px;
      background-repeat: no-repeat;
      background-size: 120px auto;
      background-position: 0 0; }
  header#page-header .brand-secondary {
    position: absolute;
    left: -9999px;
    display: inline;
    float: right;
    width: 110px;
    margin-top: 0;
    margin-bottom: 0;
    margin-left: -150px;
    padding-top: 0px;
    color: #00b2ce; }
    header#page-header .brand-secondary span {
      float: right;
      background-image: url(../img/sprites.png);
      background-position: 0px 0px;
      width: 89px;
      height: 38px;
      background-repeat: no-repeat;
      background-size: 89px auto;
      background-position: 0 0; }
  header#page-header .brand-primary span,
  header#page-header .brand-secondary span {
    display: block;
    text-align: left;
    text-indent: -999em; }

@media (min-width: 55em) {
  header#page-header {
    height: 80px;
    background-size: 100% 100%; }
    header#page-header .content-wrapper, header#page-header .article-full .main-content, .article-full header#page-header .main-content, header#page-header .facts {
      overflow: visible; }
    header#page-header .brand-primary {
      padding-top: 37px; }
    header#page-header .brand-secondary {
      position: static;
      left: auto;
      padding-top: 23px; } }

.hero {
  -webkit-backface-visibility: hidden;
  margin-top: 0;
  margin-left: auto;
  margin-right: auto;
  background-repeat: no-repeat;
  background-position: 50% 0px;
  overflow: hidden; }
  .hero.full-size {
    height: 100vh;
    max-height: none; }
    .hero.full-size .elm-content {
      max-width: none; }
  .hero .elm-image {
    margin-left: -2rem;
    margin-right: -2rem; }
    .hero .elm-image img {
      display: block;
      margin: 0 auto;
      width: 100%;
      height: auto; }
  .hero .elm-content h1 {
    font-size: 30px;
    font-size: 2rem;
    line-height: 36px;
    line-height: 2.4rem; }
    @media (min-width: 55em) {
      .hero .elm-content h1 {
        font-size: 50px;
        font-size: 3.33333rem;
        line-height: 54px;
        line-height: 3.6rem; } }
  .hero .elm-content p,
  .hero .elm-content ul,
  .hero .elm-content ol {
    font-family: "Coloplast", arial, sans-serif;
    line-height: 1.5;
    margin-bottom: 1.5em;
    font-size: 18px;
    font-size: 1.2rem;
    line-height: 24px;
    line-height: 1.6rem;
    line-height: 24px;
    line-height: 1.6rem; }
  .hero .elm-content li {
    line-height: 24px;
    line-height: 1.6rem;
    margin: 1em 0; }
  .hero .elm-content li:nth-child(n+2) {
    margin-top: 0.8rem; }
  .hero .elm-content .checkmarks li:before {
    color: #00b2ce;
    margin-top: 0.2em; }
  .hero .elm-content ul li:before {
    margin-top: 0; }

@media (min-width: 0) and (max-width: 55em) {
  .hero {
    background-image: none !important; } }

@media (min-width: 55em) {
  .hero {
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: 50% 50%;
    min-height: 420px;
    /* &:before {
            content: "";
            display: block;
            padding-top: 37.26%;

            //padding-top: 1333 / 2000 * 100%;

        }*/ }
    .hero .content-wrapper, .hero .article-full .main-content, .article-full .hero .main-content, .hero .facts {
      position: relative;
      top: 0;
      height: 100%;
      width: 100%;
      margin-right: 0;
      padding-bottom: 20px; }
    .hero .elm-image {
      position: relative;
      overflow: hidden;
      display: none; }
      .hero .elm-image img {
        opacity: 0;
        display: none; }
    .hero:not(.full-size) .elm-content {
      max-width: 450px;
      text-shadow: 0 0 1px rgba(0, 0, 0, 0.2), 0 0 25px rgba(0, 0, 0, 0.3); }
      .hero:not(.full-size) .elm-content h1,
      .hero:not(.full-size) .elm-content p,
      .hero:not(.full-size) .elm-content a,
      .hero:not(.full-size) .elm-content ul,
      .hero:not(.full-size) .elm-content ol {
        color: #fff;
        transition: color 1s ease; }
      .hero:not(.full-size) .elm-content a {
        font-size: 12px;
        font-size: 0.8rem;
        line-height: 18px;
        line-height: 1.2rem;
        text-decoration: underline;
        padding-left: 2rem; }
        .no-touch .hero:not(.full-size) .elm-content a:hover {
          color: #00b2ce; }
      .hero:not(.full-size) .elm-content p,
      .hero:not(.full-size) .elm-content ul,
      .hero:not(.full-size) .elm-content ol {
        max-width: 520px; }
      .hero:not(.full-size) .elm-content .checkmarks li:before {
        color: inherit; }
    .hero .elm-content {
      position: relative;
      top: 10%; }
    .hero.background-light .elm-content h1,
    .hero.background-light .elm-content p,
    .hero.background-light .elm-content ul,
    .hero.background-light .elm-content ol {
      color: #00b2ce; } }

.hero-type-img {
  width: 100%;
  margin: 10px 0; }

@media (min-width: 70.66667em) {
  .hero:before {
    padding-top: 37.26%; }
  .hero .content-wrapper, .hero .article-full .main-content, .article-full .hero .main-content, .hero .facts {
    left: 50%;
    margin-left: -35.33333em; } }

/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.75; }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 2rem;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  min-height: 500px;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -moz-zoom-out;
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  user-select: none; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }
  .mfp-preloader a {
    color: #CCC; }
    .mfp-preloader a:hover {
      color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close, button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  -webkit-box-shadow: none;
  box-shadow: none; }

button::-moz-focus-inner {
  padding: 0;
  border: 0; }

.mfp-close {
  min-width: 0;
  line-height: 44px;
  position: fixed;
  top: 10px;
  right: 10px;
  text-decoration: none;
  text-align: center;
  opacity: 1;
  padding: 0;
  color: #FFF;
  font-size: 40px;
  font-style: normal;
  font-family: Baskerville, monospace;
  width: 25px;
  height: 25px;
  background: url("../img/close.png") no-repeat center center !important;
  background-size: cover; }
  .no-touch .mfp-close:hover, .mfp-close:focus {
    background: transparent;
    opacity: 0.65;
    color: #333; }
  @media (min-width: 55em) {
    .mfp-close {
      right: 100px;
      top: 70px;
      width: 44px;
      height: 44px;
      font-size: 100px; } }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent; }
  .mfp-arrow:active {
    margin-top: -54px; }
  .mfp-arrow:hover, .mfp-arrow:focus {
    opacity: 1; }
  .mfp-arrow:before, .mfp-arrow:after,
  .mfp-arrow .mfp-b,
  .mfp-arrow .mfp-a {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 0;
    top: 0;
    margin-top: 35px;
    margin-left: 35px;
    border: medium inset transparent; }
  .mfp-arrow:after,
  .mfp-arrow .mfp-a {
    border-top-width: 13px;
    border-bottom-width: 13px;
    top: 8px; }
  .mfp-arrow:before,
  .mfp-arrow .mfp-b {
    border-top-width: 21px;
    border-bottom-width: 21px;
    opacity: 0.7; }

.mfp-arrow-left {
  left: 0; }
  .mfp-arrow-left:after,
  .mfp-arrow-left .mfp-a {
    border-right: 17px solid #FFF;
    margin-left: 31px; }
  .mfp-arrow-left:before,
  .mfp-arrow-left .mfp-b {
    margin-left: 25px;
    border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 0; }
  .mfp-arrow-right:after,
  .mfp-arrow-right .mfp-a {
    border-left: 17px solid #FFF;
    margin-left: 39px; }
  .mfp-arrow-right:before,
  .mfp-arrow-right .mfp-b {
    border-left: 27px solid #3F3F3F; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }
  .mfp-iframe-holder .mfp-content {
    line-height: 0;
    width: 100%;
    max-width: 900px; }
  .mfp-iframe-holder .mfp-message {
    position: absolute;
    top: -34px;
    left: 0;
    width: 100%; }
    .mfp-iframe-holder .mfp-message .message-trigger {
      position: absolute;
      top: 0;
      left: 0;
      color: #fff; }
      .mfp-iframe-holder .mfp-message .message-trigger .icon {
        display: inline-block;
        width: 2em;
        height: 2em;
        font-size: 1em;
        line-height: 2em;
        text-align: center;
        border-radius: 1em;
        margin-right: 8px;
        box-shadow: inset 0px 0px 0px 1px #fff; }
    .mfp-iframe-holder .mfp-message .message {
      display: none; }
    .mfp-iframe-holder .mfp-message:hover, .mfp-iframe-holder .mfp-message.over {
      right: 0;
      bottom: 0; }
      .mfp-iframe-holder .mfp-message:hover .message, .mfp-iframe-holder .mfp-message.over .message {
        position: static;
        display: block;
        margin-top: 34px;
        height: 100%;
        height: calc(100% - 34px);
        font-size: 12px;
        font-size: 0.8rem;
        line-height: 18px;
        line-height: 1.2rem;
        line-height: 18px;
        line-height: 1.2rem;
        padding: 2rem;
        color: #fff;
        background: rgba(0, 0, 0, 0.7);
        overflow-y: auto; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }
  .mfp-iframe-scaler iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }
  .mfp-figure:after {
    content: '';
    position: absolute;
    left: 0;
    top: 40px;
    bottom: 40px;
    display: block;
    right: 0;
    width: auto;
    height: auto;
    z-index: -1;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #444; }
  .mfp-figure small {
    color: #BDBDBD;
    display: block;
    font-size: 12px;
    line-height: 14px; }
  .mfp-figure figure {
    margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

.mfp-wrap {
  margin-top: 0; }

.mfp-popup, .mfp-form-popup, .slim-form, .mfp-form-wide-popup, #form-order-sample-overlay {
  position: relative;
  margin: 0 auto;
  padding: 40px;
  width: 100%;
  max-width: 450px;
  text-align: left;
  overflow: hidden;
  background: #fff; }
  .mfp-popup .mfp-close, .mfp-form-popup .mfp-close, .slim-form .mfp-close, .mfp-form-wide-popup .mfp-close, #form-order-sample-overlay .mfp-close {
    top: 10px;
    right: 10px;
    min-width: 0; }
  @media (min-width: 30em) {
    .mfp-popup, .mfp-form-popup, .slim-form, .mfp-form-wide-popup, #form-order-sample-overlay {
      padding: 70px; } }

.mfp-form-popup, .slim-form, .mfp-form-wide-popup, #form-order-sample-overlay {
  background: #f5f5f5; }
  .cssfilters .mfp-form-popup, .cssfilters .slim-form, .cssfilters .mfp-form-wide-popup, .cssfilters #form-order-sample-overlay {
    background: transparent; }

.mfp-form-wide-popup, #form-order-sample-overlay {
  max-width: 830px; }

/* overlay at start */
.mfp-bg {
  background: white;
  opacity: 0;
  -webkit-transition: all 0.15s ease-out;
  -moz-transition: all 0.15s ease-out;
  transition: all 0.15s ease-out; }
  .cssfilters .mfp-bg {
    background: #f5f5f5; }
  .popup--dark .mfp-bg {
    background: #000; }

/* overlay animate in */
.mfp-bg.mfp-ready {
  opacity: 0.75; }

/* overlay animate out */
.mfp-bg.mfp-removing {
  opacity: 0; }

/* content at start */
.mfp-wrap .mfp-content {
  opacity: 0;
  -webkit-transition: all 0.15s ease-out;
  -moz-transition: all 0.15s ease-out;
  transition: all 0.15s ease-out; }

/* content animate it */
.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1; }

/* content animate out */
.mfp-wrap.mfp-removing .mfp-content {
  opacity: 0; }

nav.primary {
  display: none;
  margin: 58px -2rem 0;
  padding: 0;
  font-family: "Coloplast", arial, sans-serif; }
  nav.primary.active {
    display: block; }
  nav.primary .teaser {
    display: none; }
    nav.primary .teaser .h2 {
      display: block; }
    nav.primary .teaser h2, nav.primary .teaser .h2 {
      font-size: 15px;
      font-size: 1rem;
      line-height: 24px;
      line-height: 1.6rem; }
    nav.primary .teaser p {
      font-size: 12px;
      font-size: 0.8rem;
      line-height: 18px;
      line-height: 1.2rem; }
  nav.primary > ul {
    margin: 0;
    padding: 0;
    list-style: none; }
    nav.primary > ul li {
      margin: 0;
      border-top: 1px solid #f5f5f5; }
      nav.primary > ul li:first:nth-of-type(1) {
        border-width: 0; }
      nav.primary > ul li .nav-title {
        color: #00b2ce;
        padding: 0.8rem 2rem;
        text-align: left;
        text-decoration: none; }
        .ie8 nav.primary > ul li .nav-title {
          padding: 10px 5px; }
    nav.primary > ul > li {
      border-color: #fff; }
      nav.primary > ul > li.has-icon {
        display: table-cell;
        position: static;
        left: auto; }
        nav.primary > ul > li.has-icon span:first-child {
          position: absolute;
          left: -9999px; }
      nav.primary > ul > li > .nav-title {
        position: relative;
        display: block;
        background: #f5f5f5; }
      nav.primary > ul > li.active > .nav-title,
      nav.primary > ul > li.over > .nav-title {
        color: #707070; }
      nav.primary > ul > li > ul {
        display: none;
        margin: 0;
        padding: 0;
        list-style: none; }
        nav.primary > ul > li > ul > li {
          display: block; }
          nav.primary > ul > li > ul > li > .nav-title {
            display: block; }

.nav-btn {
  position: absolute;
  top: 18px;
  right: 2rem; }
  .nav-btn a {
    color: #707070 !important;
    text-decoration: none !important; }
    .nav-btn a:hover {
      color: #00b2ce; }
    .nav-btn a span:first-child {
      position: absolute;
      left: -9999px; }

@media (min-width: 0) and (max-width: 55em) {
  nav.primary > ul > li {
    position: relative;
    cursor: pointer; }
    nav.primary > ul > li:before {
      content: "";
      font-family: 'cc-icons' !important;
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1; }
    nav.primary > ul > li:before {
      position: absolute;
      right: 0;
      padding: 0.8rem 2rem 0.8rem 4rem;
      line-height: inherit;
      z-index: 20; }
    nav.primary > ul > li .nav-title {
      padding-right: 4rem;
      color: #707070; }
  nav.primary > ul li.active > .nav-title {
    color: #00b2ce; }
  nav.primary > ul > li.expanded:before {
    content: "";
    font-family: 'cc-icons' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1; }
  nav.primary > ul > li.expanded > ul {
    display: block; } }

@media (min-width: 55em) {
  nav.primary {
    position: static;
    display: block;
    left: auto;
    width: auto;
    margin: 0;
    padding: 40px 110px 0 150px; }
    nav.primary:before {
      display: none; }
    nav.primary > ul {
      display: table;
      float: none;
      width: 100%;
      margin: 0; }
      nav.primary > ul > li {
        border: none; }
        nav.primary > ul > li:before {
          display: none; }
        nav.primary > ul > li.over .primary-nav-teaser .teaser {
          display: block;
          position: absolute;
          width: 300px;
          top: 0;
          left: 100%;
          min-height: 100%;
          padding: 1.2rem 1.6rem 4.4rem;
          background: #fff;
          border-radius: 0 0 4px 0; }
        nav.primary > ul > li.over .primary-nav-teaser a.more-link {
          position: absolute;
          display: block;
          bottom: 0;
          width: 252px;
          border-top: 1px solid #bcbcbc;
          color: inherit;
          line-height: 54px;
          line-height: 3.6rem; }
          nav.primary > ul > li.over .primary-nav-teaser a.more-link .icon {
            display: inline;
            float: right;
            font-size: inherit;
            line-height: inherit; }
            nav.primary > ul > li.over .primary-nav-teaser a.more-link .icon:before {
              content: "";
              font-family: 'cc-icons' !important;
              speak: none;
              font-style: normal;
              font-weight: normal;
              font-variant: normal;
              text-transform: none;
              line-height: 1; }
          nav.primary > ul > li.over .primary-nav-teaser a.more-link:hover {
            color: #00b2ce; }
      nav.primary > ul > li {
        position: relative;
        display: table-cell; }
        nav.primary > ul > li > .nav-title {
          position: relative;
          text-align: center;
          line-height: 27px;
          padding: 0px 10px 10px;
          border-bottom: 4px solid transparent;
          color: #707070;
          background: transparent; }
        nav.primary > ul > li.over > .nav-title,
        nav.primary > ul > li.active > .nav-title {
          border-left: 0;
          margin-left: 0;
          border-bottom: 4px solid #00b2ce;
          z-index: 12; }
        nav.primary > ul > li.over > .nav-title, nav.primary > ul > li.over > .nav-title:hover,
        nav.primary > ul > li.over > a.nav-title,
        nav.primary > ul > li.over > a.nav-title:hover {
          background-color: transparent; }
        nav.primary > ul > li > .nav-title:after {
          position: absolute;
          content: ' ';
          top: -3px;
          right: 0;
          width: 1px;
          height: 28px;
          background-image: linear-gradient(to bottom, rgba(188, 188, 188, 0), rgba(188, 188, 188, 0.1) 20%, #bcbcbc 50%, rgba(188, 188, 188, 0.9) 80%, rgba(188, 188, 188, 0)); }
        nav.primary > ul > li:first-child > .nav-title:before {
          right: auto;
          left: 0; }
        nav.primary > ul > li > ul {
          position: absolute;
          display: none;
          top: 100%;
          right: auto;
          width: 100%;
          min-height: 100%;
          background: #fff;
          border-radius: 0 0 4px 4px;
          z-index: 10; }
          nav.primary > ul > li > ul.over:not('.lang') {
            min-height: 240px;
            border-radius: 0 0 0 4px; }
          nav.primary > ul > li > ul > li > .nav-title {
            text-decoration: none;
            padding: 0.8rem 0.8rem;
            position: relative;
            z-index: 20;
            font-size: 12px;
            font-size: 0.8rem;
            line-height: 18px;
            line-height: 1.2rem;
            color: inherit; }
          nav.primary > ul > li > ul > li.active > .nav-title {
            border-left: 0;
            margin-left: 0;
            font-weight: 600; }
          nav.primary > ul > li > ul > li > .teaser {
            position: absolute;
            display: none;
            width: 300px;
            top: 0;
            left: 100%;
            min-height: 100%;
            padding: 1.2rem 1.6rem 4.4rem;
            background: #fff;
            border-radius: 0 0 4px 0; }
            nav.primary > ul > li > ul > li > .teaser a.more-link {
              position: absolute;
              display: block;
              bottom: 0;
              width: 252px;
              border-top: 1px solid #bcbcbc;
              color: inherit;
              line-height: 54px;
              line-height: 3.6rem; }
              nav.primary > ul > li > ul > li > .teaser a.more-link span:first-child {
                position: absolute;
                text-indent: -9999px; }
              nav.primary > ul > li > ul > li > .teaser a.more-link .icon {
                display: inline;
                float: right;
                font-size: inherit;
                line-height: inherit; }
                nav.primary > ul > li > ul > li > .teaser a.more-link .icon:before {
                  content: "";
                  font-family: 'cc-icons' !important;
                  speak: none;
                  font-style: normal;
                  font-weight: normal;
                  font-variant: normal;
                  text-transform: none;
                  line-height: 1; }
              nav.primary > ul > li > ul > li > .teaser a.more-link:hover {
                color: #00b2ce; }
          nav.primary > ul > li > ul > li.over > .teaser {
            display: block; }
        nav.primary > ul > li:nth-of-type(n+4) > ul.over {
          border-radius: 0 0 4px 0; }
        nav.primary > ul > li:nth-of-type(n+4) > ul > li .teaser {
          left: -300px;
          border-radius: 0 0 0 4px; }
        nav.primary > ul > li.over ul {
          display: block; }
  .nav-btn {
    display: none; } }

.state-indicator {
  position: absolute;
  top: -999em;
  left: -999em; }
  .state-indicator:before {
    content: 'xs'; }
    @media (min-width: 45em) {
      .state-indicator:before {
        content: 'sm'; } }
    @media (min-width: 55em) {
      .state-indicator:before {
        content: 'md'; } }
    @media (min-width: 66.66667em) {
      .state-indicator:before {
        content: 'lg'; } }

.cookie-disclaimer {
  position: relative;
  padding: 10px 30px 10px 10px;
  background: #ebebeb;
  background: linear-gradient(#ebebeb, #dcdcdc);
  border-bottom: 1px solid #555;
  border-top: 1px solid #7a7a7a;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  border-top: 1px solid rgba(122, 122, 122, 0.5);
  box-shadow: inset 0 1px 0 #f9f9f9;
  color: #7c7c7c;
  text-align: left;
  text-shadow: 0 1px 1px white;
  font-size: 13px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.3; }
  .cookie-disclaimer a:link,
  .cookie-disclaimer a:visited {
    font-weight: bold;
    color: #7c7c7c;
    text-decoration: none; }
  .cookie-disclaimer .close-disclaimer {
    position: absolute;
    right: 10px;
    font-weight: light;
    font-size: 20px;
    line-height: 0.8; }

.popup__close {
  position: absolute;
  right: 0.25em;
  top: 0;
  font-size: 3em;
  display: block;
  text-align: right; }

.popup__content, .popup__overlay {
  display: none; }

.popup__content {
  font: 1rem "Arial", sans-serif;
  position: fixed;
  top: 50%;
  left: 50%;
  max-width: 750px;
  width: 60%;
  padding: 2em 4em 1em 2em;
  line-height: 1.4;
  border-radius: 1rem;
  background: #fff;
  transform: translate(-50%, -50%);
  z-index: 1045; }

.popup__link {
  display: block;
  margin: 1em 0; }

.popup__overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.6);
  z-index: 1044; }

.popup--state {
  position: absolute;
  left: -10000px; }

.popup--state:checked + .popup__overlay,
.popup--state:checked + .popup__overlay + .popup__content {
  display: block; }

#progress-bar {
  display: none;
  height: 5px;
  background-color: #b5b5b5;
  position: relative;
  width: 100%;
  top: 0;
  margin-top: 0 !important; }
  #progress-bar > span {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    background: #00b0ca;
    /* Old browsers */
    background: -moz-linear-gradient(left, #00b0ca 1%, #78be20 100%);
    /* FF3.6-15 */
    background: -webkit-linear-gradient(left, #00b0ca 1%, #78be20 100%);
    /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to right, #00b0ca 1%, #78be20 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00b0ca', endColorstr='#78be20',GradientType=1 ); }

#checkbox-overlay {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  z-index: 5; }

input[name="lastWeekPassingUrineExp"] + label {
  position: relative;
  z-index: 3; }

input[name="lastWeekPassingUrineExp"][value="ICExpUrineNoIssues"]:checked + label, input[name="lastWeekPassingUrineExp"][value="ICExpUrineOtherIssues"]:checked + label {
  z-index: 10; }

.btns-bar {
  overflow: hidden;
  text-align: center;
  padding: 40px 0 100px;
  display: none;
  white-space: nowrap; }
  .survey-header .btns-bar {
    padding: 70px 0 100px;
    display: block; }
  @media (min-width: 0) and (max-width: 45em) {
    .btns-bar {
      padding: 40px 0 50px; }
      .survey-header .btns-bar {
        padding: 30px 0 50px; }
      .btns-bar > * {
        margin: 0 2px !important;
        min-width: 140px !important; } }
  #ictoolsurvey .btns-bar > a {
    background-color: #00b0ca;
    border: none;
    min-width: 170px;
    color: white !important;
    display: inline-block;
    vertical-align: top;
    max-width: 45%;
    float: none;
    width: auto;
    -moz-border-radius: 25px;
    -webkit-border-radius: 25px;
    border-radius: 25px;
    font-size: 15px;
    line-height: 1;
    margin: 0 10px;
    white-space: nowrap;
    font-family: "ColoplastMedium" !important;
    padding: 10px 40px 10px 20px;
    text-align: left;
    text-decoration: none !important;
    position: relative;
    overflow: hidden; }
    #ictoolsurvey .btns-bar > a:hover {
      background-color: #008da2; }
    #ictoolsurvey .btns-bar > a.disabled {
      background-color: #dcdcdc;
      cursor: default; }
    #ictoolsurvey .btns-bar > a::before {
      color: white;
      position: absolute;
      top: 0;
      right: 0;
      width: 35px;
      text-align: center;
      border-left: 1px solid rgba(255, 255, 255, 0.3);
      height: 100%;
      line-height: 36px; }
    #ictoolsurvey .btns-bar > a.prev {
      text-align: right;
      padding: 10px 20px 10px 40px; }
      #ictoolsurvey .btns-bar > a.prev:before {
        right: auto;
        left: 0;
        border-left: none;
        border-right: 1px solid rgba(255, 255, 255, 0.3); }
    #ictoolsurvey .btns-bar > a::after, #ictoolsurvey .btns-bar > a::before {
      font-family: "cc-icons" !important; }
  .btns-bar > a#prev-step {
    display: none; }
  .btns-bar *[type="submit"] {
    background-color: #00b0ca;
    border: none;
    min-width: 170px;
    color: white !important;
    display: inline-block;
    vertical-align: top;
    max-width: 45%;
    float: none;
    width: auto;
    -moz-border-radius: 25px;
    -webkit-border-radius: 25px;
    border-radius: 25px;
    font-size: 15px;
    line-height: 1;
    margin: 0 10px;
    white-space: nowrap;
    font-family: "ColoplastMedium" !important;
    padding: 10px 0;
    text-align: center; }
    .btns-bar *[type="submit"]:hover {
      background-color: #008da2; }
    .btns-bar *[type="submit"].disabled {
      background-color: #dcdcdc;
      cursor: default; }
  .btns-bar #survey-submit {
    display: none; }

.ic-tool-survey {
  background-color: white;
  font-weight: 500;
  position: relative; }
  .ic-tool-survey *[class^="width-"]::after {
    content: "";
    display: table;
    clear: both; }
  .ic-tool-survey *[class^="width-"] > .input-text, .ic-tool-survey *[class^="width-"] > .input-textarea, .ic-tool-survey *[class^="width-"] > .input-textarea {
    margin-bottom: 15px; }
  .ic-tool-survey h2 + p, .ic-tool-survey nav.primary .teaser .h2 + p, nav.primary .teaser .ic-tool-survey .h2 + p {
    margin-top: 0; }
  .ic-tool-survey h1.page-heading > span {
    display: block; }
    .ic-tool-survey h1.page-heading > span:empty {
      display: none; }
  .ic-tool-survey .content-block p {
    max-width: 100%; }
  .ic-tool-survey #ic-tool-survey.form-page {
    margin-top: 0; }
  .ic-tool-survey ~ #page-footer {
    margin-top: 0; }
  @media (min-width: 0) and (max-width: 45em) {
    .ic-tool-survey {
      padding-left: 1rem;
      padding-right: 1rem; } }
  .ic-tool-survey a, .ic-tool-survey .tip em, .ic-tool-survey h1, .ic-tool-survey h2, .ic-tool-survey nav.primary .teaser .h2, nav.primary .teaser .ic-tool-survey .h2, .ic-tool-survey h3 {
    color: #00b0ca; }
  .ic-tool-survey a, .ic-tool-survey label {
    cursor: pointer; }
  .main-content .ic-tool-survey {
    margin-top: 2px; }
  .ic-tool-survey .hidden, .ic-tool-survey *[class^="step"]:not([data-step="10"]) input {
    display: none; }
  .ic-tool-survey *[data-step="10"] .btns-bar, .ic-tool-survey .thankyoupage .btns-bar {
    display: block;
    text-align: right;
    padding-top: 20px; }
  .ic-tool-survey *[data-step="10"] .input-select > div, .ic-tool-survey .thankyoupage .input-select > div {
    line-height: 58px; }
    .ic-tool-survey *[data-step="10"] .input-select > div > div, .ic-tool-survey .thankyoupage .input-select > div > div {
      max-height: 58px;
      border: 1px solid #e7e7e7; }
  .ic-tool-survey *[data-step="10"] .icon, .ic-tool-survey .thankyoupage .icon {
    border: 1px solid #e7e7e7; }
  .ic-tool-survey *[data-step="10"] .input-error .icon, .ic-tool-survey .thankyoupage .input-error .icon {
    border: none; }
  .ic-tool-survey *[data-step="10"] .form-terms, .ic-tool-survey .thankyoupage .form-terms {
    clear: both;
    text-align: center;
    overflow: hidden; }
    .ic-tool-survey *[data-step="10"] .form-terms label, .ic-tool-survey .thankyoupage .form-terms label {
      display: inline-block;
      margin: 0 auto;
      text-align: left;
      width: auto;
      float: none; }
  .ic-tool-survey *[data-step="10"] .input-textarea textarea, .ic-tool-survey .thankyoupage .input-textarea textarea {
    border: 1px solid #e7e7e7;
    background-color: #f9f9f9;
    padding: 20px;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px; }
  .ic-tool-survey *[data-step="10"] input, .ic-tool-survey .thankyoupage input {
    border: 1px solid #e7e7e7;
    background-color: #f9f9f9; }
    .ic-tool-survey *[data-step="10"] input[type="text"], .ic-tool-survey *[data-step="10"] input[type="email"], .ic-tool-survey .thankyoupage input[type="text"], .ic-tool-survey .thankyoupage input[type="email"] {
      padding: 20px;
      -moz-border-radius: 10px;
      -webkit-border-radius: 10px;
      border-radius: 10px; }
  .ic-tool-survey *[data-step="10"] .input-prefix .prefix, .ic-tool-survey .thankyoupage .input-prefix .prefix {
    border: 1px solid #e7e7e7;
    background-color: #f9f9f9;
    border-right-color: white;
    padding: 20px 11px;
    -moz-border-radius: 10px 0 0 10px;
    -webkit-border-radius: 10px 0 0 10px;
    border-radius: 10px 0 0 10px; }
    .ic-tool-survey *[data-step="10"] .input-prefix .prefix + label input, .ic-tool-survey .thankyoupage .input-prefix .prefix + label input {
      -moz-border-radius: 0 10px 10px 0;
      -webkit-border-radius: 0 10px 10px 0;
      border-radius: 0 10px 10px 0; }
  .ic-tool-survey *[data-step="10"] .input-text .label, .ic-tool-survey *[data-step="10"] .input-textarea .label, .ic-tool-survey .thankyoupage .input-text .label, .ic-tool-survey .thankyoupage .input-textarea .label {
    left: 21px;
    top: 20px; }
  .ic-tool-survey *[data-step="10"] .input-text.has-value .label, .ic-tool-survey *[data-step="10"] .has-value.input-textarea .label, .ic-tool-survey *[data-step="10"] .input-text.focus .label, .ic-tool-survey *[data-step="10"] .focus.input-textarea .label, .ic-tool-survey .thankyoupage .input-text.has-value .label, .ic-tool-survey .thankyoupage .has-value.input-textarea .label, .ic-tool-survey .thankyoupage .input-text.focus .label, .ic-tool-survey .thankyoupage .focus.input-textarea .label {
    top: 2px; }
  .ic-tool-survey form {
    overflow: hidden;
    clear: both; }

.survey-header {
  overflow: hidden; }
  .survey-header h1 img {
    display: none; }
  @media (min-width: 0) and (max-width: 45em) {
    .survey-header h1 > *, .survey-header h1 img {
      display: inline-block;
      vertical-align: middle; }
    .survey-header h1 img {
      width: 12.5%;
      height: auto;
      margin-right: 2%;
      min-width: 50px; }
    .survey-header h1 span {
      max-width: 75%; } }
  .survey-header .intro {
    overflow: hidden; }
    .survey-header .intro img {
      float: right;
      margin-left: 50px;
      width: 20%;
      height: auto; }
      @media (min-width: 0) and (max-width: 45em) {
        .survey-header .intro img {
          display: none; } }
      .survey-header .intro img + * {
        overflow: hidden; }
  .survey-header label:not(.custom-style) {
    background-color: #00b0ca;
    border: none;
    min-width: 170px;
    color: white !important;
    display: inline-block;
    vertical-align: top;
    max-width: 45%;
    float: none;
    width: auto;
    -moz-border-radius: 25px;
    -webkit-border-radius: 25px;
    border-radius: 25px;
    font-size: 15px;
    line-height: 1;
    margin: 0 10px;
    white-space: nowrap;
    font-family: "ColoplastMedium" !important;
    padding: 10px 0;
    text-align: center; }
    .survey-header label:not(.custom-style):hover {
      background-color: #008da2; }
    .survey-header label:not(.custom-style).disabled {
      background-color: #dcdcdc;
      cursor: default; }

*[class^='items-'] {
  overflow: hidden;
  line-height: 1.4;
  position: relative; }
  *[class^='items-'].with-text label {
    position: relative;
    text-align: left;
    padding-bottom: 0;
    margin: 10px -4px 10px 0; }
    *[class^='items-'].with-text label::before {
      display: block;
      content: "";
      padding-top: 75%;
      border: 2px solid #e7e7e7;
      -moz-border-radius: 50%;
      -webkit-border-radius: 50%;
      border-radius: 50%;
      width: 75%;
      width: calc(75% + 2px*2);
      width: -moz-calc(75% + 2px*2);
      width: -webkit-calc(75% + 2px*2); }
    *[class^='items-'].with-text label::after {
      position: absolute;
      width: 75%;
      width: calc(75% + 2px*2);
      width: -moz-calc(75% + 2px*2);
      width: -webkit-calc(75% + 2px*2);
      text-align: center;
      color: #00b0ca;
      font-size: 20px;
      line-height: 1;
      left: 0;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      transform: translateY(-50%); }
    *[class^='items-'].with-text label:hover::before, *[class^='items-'].with-text label.checked::before {
      border-color: #00b0ca; }
  *[class^='items-'].with-text label[for$="-1"]::after {
    content: "1"; }
  *[class^='items-'].with-text input[id$="-1"]:checked ~ label[for$="-1"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-1"]:checked ~ label[for$="-1"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-2"]::after {
    content: "2"; }
  *[class^='items-'].with-text input[id$="-2"]:checked ~ label[for$="-2"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-2"]:checked ~ label[for$="-2"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-3"]::after {
    content: "3"; }
  *[class^='items-'].with-text input[id$="-3"]:checked ~ label[for$="-3"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-3"]:checked ~ label[for$="-3"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-4"]::after {
    content: "4"; }
  *[class^='items-'].with-text input[id$="-4"]:checked ~ label[for$="-4"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-4"]:checked ~ label[for$="-4"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-5"]::after {
    content: "5"; }
  *[class^='items-'].with-text input[id$="-5"]:checked ~ label[for$="-5"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-5"]:checked ~ label[for$="-5"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-6"]::after {
    content: "6"; }
  *[class^='items-'].with-text input[id$="-6"]:checked ~ label[for$="-6"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-6"]:checked ~ label[for$="-6"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-7"]::after {
    content: "7"; }
  *[class^='items-'].with-text input[id$="-7"]:checked ~ label[for$="-7"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-7"]:checked ~ label[for$="-7"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-8"]::after {
    content: "8"; }
  *[class^='items-'].with-text input[id$="-8"]:checked ~ label[for$="-8"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-8"]:checked ~ label[for$="-8"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-9"]::after {
    content: "9"; }
  *[class^='items-'].with-text input[id$="-9"]:checked ~ label[for$="-9"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-9"]:checked ~ label[for$="-9"]::after {
    color: white; }
  *[class^='items-'].with-text label[for$="-10"]::after {
    content: "10"; }
  *[class^='items-'].with-text input[id$="-10"]:checked ~ label[for$="-10"]::before {
    border-color: #00b0ca;
    background-color: #00b0ca; }
  *[class^='items-'].with-text input[id$="-10"]:checked ~ label[for$="-10"]::after {
    color: white; }
  *[class^='items-']:not(.with-text):not(.with-image) label {
    position: relative; }
    *[class^='items-']:not(.with-text):not(.with-image) label > span {
      max-width: 85%;
      margin: 0 auto; }
      @media only screen and (max-width: 420px) {
        *[class^='items-']:not(.with-text):not(.with-image) label > span {
          max-width: 60%; } }
    *[class^='items-']:not(.with-text):not(.with-image) label::after, *[class^='items-']:not(.with-text):not(.with-image) label::before {
      content: "";
      -moz-border-radius: 50%;
      -webkit-border-radius: 50%;
      border-radius: 50%; }
    *[class^='items-']:not(.with-text):not(.with-image) label::before {
      display: block;
      width: 34px;
      height: 34px;
      margin: 0 auto;
      border: 2px solid #e7e7e7; }
    *[class^='items-']:not(.with-text):not(.with-image) label:hover:before {
      border-color: #00b0ca; }
    *[class^='items-']:not(.with-text):not(.with-image) label::after {
      position: absolute;
      top: 10px;
      left: 50%;
      margin-left: -7px;
      height: 14px;
      width: 14px;
      background-color: #00b0ca;
      display: none; }
    @media (min-width: 0) and (max-width: 45em) {
      *[class^='items-']:not(.with-text):not(.with-image) label {
        text-align: left; }
        *[class^='items-']:not(.with-text):not(.with-image) label > span {
          padding-top: 0;
          padding-top: 5px; }
        *[class^='items-']:not(.with-text):not(.with-image) label > span, *[class^='items-']:not(.with-text):not(.with-image) label::before {
          display: inline-block;
          vertical-align: top; }
        *[class^='items-']:not(.with-text):not(.with-image) label::before {
          margin: 0 11px 0 0; }
        *[class^='items-']:not(.with-text):not(.with-image) label::after {
          left: 10px;
          margin-left: 0; } }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-1"]:checked ~ label[for$="-1"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-2"]:checked ~ label[for$="-2"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-3"]:checked ~ label[for$="-3"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-4"]:checked ~ label[for$="-4"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-5"]:checked ~ label[for$="-5"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-6"]:checked ~ label[for$="-6"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-7"]:checked ~ label[for$="-7"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-8"]:checked ~ label[for$="-8"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-9"]:checked ~ label[for$="-9"]::after {
    display: block; }
  *[class^='items-']:not(.with-text):not(.with-image) input[id$="-10"]:checked ~ label[for$="-10"]::after {
    display: block; }
  *[class^='items-'].with-image input:checked + label .img-holder::after {
    border: 2px solid #00b0ca; }
  *[class^='items-'] label {
    display: inline-block;
    vertical-align: top;
    margin: 0 -4px 0 0;
    float: none;
    text-align: center;
    padding-bottom: 50px; }
    *[class^='items-'] label > span:not(.img-holder) {
      display: block;
      padding-top: 20px; }
    *[class^='items-'] label .img-holder {
      display: block;
      margin: 0 auto;
      width: 150px;
      max-width: 60%;
      position: relative;
      clear: both;
      overflow: hidden;
      padding: 1px; }
      *[class^='items-'] label .img-holder::after, *[class^='items-'] label .img-holder::before {
        content: ""; }
      *[class^='items-'] label .img-holder::before {
        padding-top: 100%;
        display: block;
        position: relative;
        z-index: 1;
        -moz-border-radius: 50%;
        -webkit-border-radius: 50%;
        border-radius: 50%;
        background-color: #f8f8f8; }
      *[class^='items-'] label .img-holder:after {
        position: absolute;
        z-index: 6;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        -moz-border-radius: 50%;
        -webkit-border-radius: 50%;
        border-radius: 50%; }
      *[class^='items-'] label .img-holder img {
        position: absolute;
        left: 50%;
        max-height: 100%;
        max-width: 100%;
        top: 50%;
        z-index: 5;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%); }
      *[class^='items-'] label .img-holder + span {
        max-width: 70%; }
        @media (min-width: 0) and (max-width: 45em) {
          *[class^='items-'] label .img-holder + span {
            max-width: 85%; } }
        *[class^='items-'] label .img-holder + span em, *[class^='items-'] label .img-holder + span a {
          display: block; }
        *[class^='items-'] label .img-holder + span, *[class^='items-'] label .img-holder + span:before {
          display: inline-block;
          vertical-align: bottom; }
        *[class^='items-'] label .img-holder + span:before {
          content: "..."; }
    @media (min-width: 0) and (max-width: 45em) {
      *[class^='items-'] label {
        width: 50%;
        padding-bottom: 30px; } }
    *[class^='items-'] label:hover .img-holder:after {
      border: 2px solid #00b0ca; }
  *[class^='items-'] .tip::after, *[class^='items-'] .tip::before {
    content: "";
    display: inline-block;
    margin-top: 10px;
    height: 25px;
    background-color: #999;
    width: 1px;
    clear: both; }
  *[class^='items-'] .tip > * {
    display: block;
    margin: 0;
    padding: 0;
    padding-right: calc(100% - 180px);
    padding-right: -moz-calc(100% - 180px);
    padding-right: -webkit-calc(100% - 180px); }
  *[class^='items-'] .tip > *:first-child {
    font-style: italic;
    color: #00b0ca; }
  @media (min-width: 45em) {
    *[class^='items-'] .tip {
      min-height: 100px; } }
  *[class^='items-'] .tip::before {
    margin-bottom: 10px;
    margin-top: 0;
    display: none; }
  *[class^='items-'] .tip em {
    display: block; }
  @media (min-width: 45em) {
    *[class^='items-'] .tip:not(.end) {
      position: absolute;
      bottom: 0;
      left: 0;
      z-index: 1;
      width: 100%; }
      *[class^='items-'] .tip:not(.end)::after {
        display: none; }
      *[class^='items-'] .tip:not(.end)::before {
        display: inline-block; } }
  *[class^='items-'] .tip.end {
    text-align: right;
    position: relative;
    z-index: 2; }
    *[class^='items-'] .tip.end > * {
      padding-right: 0;
      padding-left: calc(100% - 180px);
      padding-left: -moz-calc(100% - 180px);
      padding-left: -webkit-calc(100% - 180px); }
    @media (min-width: 0) and (max-width: 45em) {
      *[class^='items-'] .tip.end > * {
        padding-right: 15px; } }
    *[class^='items-'] .tip.end::after {
      display: none; }
    *[class^='items-'] .tip.end::before {
      display: inline-block; }

@media (min-width: 45em) {
  .items-1 label {
    width: 100%; } }

@media (min-width: 45em) {
  .items-1.with-text .tip::after, .items-1.with-text .tip::before {
    margin-left: 37.5%; }
  .items-1.with-text .tip.end::before {
    margin-right: 62.5%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-1.with-text .tip::after, .items-1.with-text .tip::before {
    margin-left: 18.75%; }
  .items-1.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-2 label {
    width: 50%; } }

@media (min-width: 45em) {
  .items-2.with-text .tip::after, .items-2.with-text .tip::before {
    margin-left: 18.75%; }
  .items-2.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-2.with-text .tip::after, .items-2.with-text .tip::before {
    margin-left: 18.75%; }
  .items-2.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-3 label {
    width: 33.33333%; } }

@media (min-width: 45em) {
  .items-3.with-text .tip::after, .items-3.with-text .tip::before {
    margin-left: 12.5%; }
  .items-3.with-text .tip.end::before {
    margin-right: 20.83333%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-3.with-text .tip::after, .items-3.with-text .tip::before {
    margin-left: 18.75%; }
  .items-3.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-4 label {
    width: 25%; } }

@media (min-width: 45em) {
  .items-4.with-text .tip::after, .items-4.with-text .tip::before {
    margin-left: 9.375%; }
  .items-4.with-text .tip.end::before {
    margin-right: 15.625%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-4.with-text .tip::after, .items-4.with-text .tip::before {
    margin-left: 18.75%; }
  .items-4.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-5 label {
    width: 20%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-5 label {
    width: 100%; } }

@media (min-width: 45em) {
  .items-5.with-text .tip::after, .items-5.with-text .tip::before {
    margin-left: 7.5%; }
  .items-5.with-text .tip.end::before {
    margin-right: 12.5%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-5.with-text .tip::after, .items-5.with-text .tip::before {
    margin-left: 18.75%; }
  .items-5.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-6 label {
    width: 16.66667%; } }

@media (min-width: 45em) {
  .items-6.with-text .tip::after, .items-6.with-text .tip::before {
    margin-left: 6.25%; }
  .items-6.with-text .tip.end::before {
    margin-right: 10.41667%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-6.with-text .tip::after, .items-6.with-text .tip::before {
    margin-left: 18.75%; }
  .items-6.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-7 label {
    width: 14.28571%; } }

@media (min-width: 45em) {
  .items-7.with-text .tip::after, .items-7.with-text .tip::before {
    margin-left: 5.35714%; }
  .items-7.with-text .tip.end::before {
    margin-right: 8.92857%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-7.with-text .tip::after, .items-7.with-text .tip::before {
    margin-left: 18.75%; }
  .items-7.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-8 label {
    width: 12.5%; }
  .items-8.with-image label, .items-8.with-img label {
    width: 25%; } }

@media (min-width: 45em) {
  .items-8.with-text .tip::after, .items-8.with-text .tip::before {
    margin-left: 4.6875%; }
  .items-8.with-text .tip.end::before {
    margin-right: 7.8125%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-8.with-text .tip::after, .items-8.with-text .tip::before {
    margin-left: 18.75%; }
  .items-8.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-9 label {
    width: 11.11111%; } }

@media (min-width: 45em) {
  .items-9.with-text .tip::after, .items-9.with-text .tip::before {
    margin-left: 4.16667%; }
  .items-9.with-text .tip.end::before {
    margin-right: 6.94444%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-9.with-text .tip::after, .items-9.with-text .tip::before {
    margin-left: 18.75%; }
  .items-9.with-text .tip.end::before {
    margin-right: 31.25%; } }

@media (min-width: 45em) {
  .items-10 label {
    width: 10%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-10 label {
    width: 20%; } }

@media (min-width: 45em) {
  .items-10.with-text .tip::after, .items-10.with-text .tip::before {
    margin-left: 3.75%; }
  .items-10.with-text .tip.end::before {
    margin-right: 6.25%; } }

@media (min-width: 0) and (max-width: 45em) {
  .items-10.with-text .tip::after, .items-10.with-text .tip::before {
    margin-left: 7.5%; }
  .items-10.with-text .tip.end::before {
    margin-right: 12.5%; } }

.step {
  overflow: hidden;
  display: none; }
  .step-intro {
    padding-top: 60px;
    clear: both; }
    .step-intro italic, .step-intro i {
      font-style: italic; }
    .step-intro .custom-style {
      font-style: italic;
      color: #00b0ca;
      padding-top: 25px; }
      .step-intro .custom-style span {
        font-style: normal;
        font-weight: bold;
        font-size: 28px;
        margin-right: 3px; }
    .step-intro:not(.survey-header) {
      text-align: center;
      padding-bottom: 75px; }
      .step-intro:not(.survey-header) > * {
        margin: 0 auto; }
        @media (min-width: 45em) {
          .step-intro:not(.survey-header) > * {
            max-width: 70%; } }
      @media (min-width: 45em) {
        .step-intro:not(.survey-header) > h2, nav.primary .teaser .step-intro:not(.survey-header) > .h2 {
          max-width: 90%; } }
    .step-intro * {
      margin: 0;
      padding: 0; }
    #ictoolsurvey .step-intro h1 {
      font-size: 49px; }
      @media (min-width: 0) and (max-width: 45em) {
        #ictoolsurvey .step-intro h1 {
          font-size: 37px; } }
    #ictoolsurvey .step-intro h2, #ictoolsurvey .step-intro nav.primary .teaser .h2, nav.primary .teaser #ictoolsurvey .step-intro .h2 {
      font-size: 35px;
      line-height: 1.3; }
      @media (min-width: 0) and (max-width: 45em) {
        #ictoolsurvey .step-intro h2, #ictoolsurvey .step-intro nav.primary .teaser .h2, nav.primary .teaser #ictoolsurvey .step-intro .h2 {
          font-size: 30px; } }
    .step-intro p {
      padding-top: 25px; }
    @media (min-width: 0) and (max-width: 45em) {
      .step-intro {
        padding-top: 30px; }
        .step-intro:not(.survey-header) {
          padding-bottom: 40px; }
        .step-intro h1, .step-intro h2, .step-intro nav.primary .teaser .h2, nav.primary .teaser .step-intro .h2 {
          font-size: 30px; } }

#start-survey:checked ~ #ic-tool-survey .step[data-step="1"], #start-survey:checked ~ #ic-tool-survey .btns-bar {
  display: block; }

#start-survey:checked + .survey-header {
  display: none; }

#popupinfo-window {
  position: fixed;
  z-index: 90000;
  display: none;
  text-align: center;
  background: rgba(245, 245, 245, 0.95); }
  #popupinfo-window *:not(h2):not(nav.primary .teaser .h2) {
    color: #707070; }
  #popupinfo-window, #popupinfo-window .popup-label {
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%; }
  #popupinfo-window .popup-label {
    position: absolute;
    text-align: right;
    cursor: pointer;
    color: #707070; }
    #popupinfo-window .popup-label span {
      font-size: 35px;
      padding: 20px;
      display: inline-block;
      position: relative;
      z-index: 30; }
  #popupinfo-window .popupinfo-content {
    width: 100%;
    max-width: 960px;
    height: 100%;
    overflow-y: auto;
    margin: 0 auto;
    text-align: left;
    position: relative;
    padding: 60px 30px 30px;
    z-index: 20; }
    .step-intro #popupinfo-window .popupinfo-content p, .step-intro #popupinfo-window .popupinfo-content li {
      padding-top: 15px; }
  #information-popup:checked ~ #popupinfo-window {
    display: block; }

/* generated with grunt-sass-globbing */
.article-full {
  margin-top: 0;
  text-align: center;
  background-color: #fff; }
  .article-full .main-content {
    text-align: left; }
    .article-full .main-content h1 {
      margin-top: 1.2rem; }
  .article-full > *:nth-child(n+2) {
    margin-top: 2.8rem; }

.article-header {
  text-align: left;
  background-repeat: no-repeat;
  background-position: 50% 0;
  font-family: "Coloplast", arial, sans-serif; }
  [editmode] .article-header {
    height: 500px; }
  .article-header .content-block {
    overflow: visible; }
    .article-header .content-block .elm-image {
      margin-left: -2rem;
      margin-right: -2rem; }
      .article-header .content-block .elm-image img {
        width: 100%;
        opacity: 1; }
    @media (min-width: 45em) {
      .article-header .content-block .elm-content h1 {
        font-size: 50px;
        font-size: 3.33333rem;
        line-height: 54px;
        line-height: 3.6rem; } }
    .article-header .content-block .elm-content p {
      font-size: 18px;
      font-size: 1.2rem;
      line-height: 24px;
      line-height: 1.6rem;
      font-family: Arial, Helvetica, sans-serif;
      color: #00b2ce;
      font-weight: 300; }

.type-article .main-content {
  max-width: 696px;
  margin-left: auto;
  margin-right: auto; }
  .type-article .main-content .content-block .elm-image {
    margin-top: 1.6rem;
    margin-bottom: 25px; }
    .type-article .main-content .content-block .elm-image.full-width {
      width: 100%;
      float: right;
      margin-left: 0;
      margin-right: 0;
      clear: none; }
      .type-article .main-content .content-block .elm-image.full-width img {
        width: 100%; }
    .type-article .main-content .content-block .elm-image.inline-left {
      margin-left: 0;
      margin-right: 1.2rem;
      margin-top: 0.4rem;
      margin-bottom: 25px; }
      @media (min-width: 30em) {
        .type-article .main-content .content-block .elm-image.inline-left {
          clear: left;
          float: left;
          width: 50%; } }
      .ie8 .type-article .main-content .content-block .elm-image.inline-left {
        float: none;
        margin: 0 auto; }
    .type-article .main-content .content-block .elm-image.inline-right {
      width: 100%;
      margin-left: 1.2rem;
      margin-right: 0;
      margin-top: 0.4rem;
      margin-bottom: 25px; }
      @media (min-width: 30em) {
        .type-article .main-content .content-block .elm-image.inline-right {
          clear: right;
          float: right;
          width: 50%; } }
      .ie8 .type-article .main-content .content-block .elm-image.inline-right {
        float: none;
        margin: 0 auto; }
  .type-article .main-content .content-block .elm-content {
    width: auto;
    float: none;
    clear: none;
    display: inline; }

.type-article .article-header {
  background-color: #f5f5f5;
  background-image: none !important;
  position: static; }
  .type-article .article-header .elm-content {
    overflow: hidden;
    margin-top: 1.6rem;
    margin-bottom: 0.8rem; }
  @media (min-width: 0) and (max-width: 45em) {
    .type-article .article-header {
      min-height: 0 !important; } }
  @media (min-width: 45em) {
    .type-article .article-header {
      position: relative;
      padding-top: 0;
      padding-bottom: 0;
      overflow: hidden;
      display: table;
      width: 100%; }
      .type-article .article-header .content-wrapper, .type-article .article-header .article-full .main-content, .article-full .type-article .article-header .main-content, .type-article .article-header .facts {
        height: 100%;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
        vertical-align: middle;
        text-align: center;
        overflow: hidden; }
      .type-article .article-header .content-block {
        position: static;
        max-width: 70.66667em;
        margin: 0 auto;
        padding: 0 2rem;
        text-align: left; }
      .type-article .article-header .elm-image {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        z-index: 1;
        overflow: hidden;
        transition-delay: 0.5s;
        transition-property: transform, min-width; }
        .type-article .article-header .elm-image img {
          display: block;
          position: absolute;
          margin: 0;
          min-width: 100%;
          min-height: 100%;
          width: auto;
          height: auto;
          left: 75%;
          top: 50%;
          transform: translate(-75%, -50%); }
      .type-article .article-header .elm-content {
        position: absolute;
        display: inline-block;
        z-index: 5;
        float: none;
        max-width: 450px;
        margin: 0;
        top: 50%;
        transform: translateY(-50%);
        transition-property: transform, color, text-shadow;
        transition-delay: 0.5s;
        text-shadow: 0 0 1px rgba(0, 0, 0, 0.2), 0 0 25px rgba(0, 0, 0, 0.3);
        color: #fff; }
        .type-article .article-header .elm-content h1,
        .type-article .article-header .elm-content h2,
        .type-article .article-header .elm-content nav.primary .teaser .h2, nav.primary .teaser
        .type-article .article-header .elm-content .h2 {
          color: inherit; }
      .type-article .article-header .elm-content > h1 + span {
        display: block; }
      .type-article .article-header .elm-content > :nth-child(n+2) {
        visibility: visible;
        opacity: 0;
        transform: translateY(100%);
        transition-property: transform, opacity; }
      .type-article .article-header .elm-content,
      .type-article .article-header .elm-content > :nth-child(n+2),
      .type-article .article-header .elm-image, .type-article .article-header:before, .type-article .article-header:after {
        transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
        transition-duration: 0.5s; }
      .type-article .article-header:before, .type-article .article-header:after {
        display: block;
        content: ' ';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        height: 100%;
        z-index: 2;
        transition-property: left;
        transition-delay: 0.5s; }
      .type-article .article-header:before {
        background-color: rgba(255, 255, 255, 0);
        border: 0px solid #f5f5f5;
        transition-property: background-color, border-width; }
      .type-article .article-header:after {
        left: -100%;
        width: 54%;
        background: #f5f5f5; }
      body:not(.scroll-top) .type-article .article-header:before, body:not(.scroll-top) .type-article .article-header:after {
        transition-delay: 0s; }
      body:not(.scroll-top) .type-article .article-header:before {
        background-color: rgba(255, 255, 255, 0);
        border: 3.2rem solid #f5f5f5; }
      body:not(.scroll-top) .type-article .article-header:after {
        left: 0;
        width: 54%;
        height: 100%;
        background: #f5f5f5; }
      body:not(.scroll-top) .type-article .article-header .elm-content {
        color: #00b2ce;
        transition-delay: 0s;
        text-shadow: none; }
      body:not(.scroll-top) .type-article .article-header .elm-content > h1 + span,
      body:not(.scroll-top) .type-article .article-header .elm-content > :nth-child(n+2) {
        transform: translate(0);
        opacity: 1;
        transition-delay: 0.5s; } }

.type-product .article-header {
  position: relative;
  padding: 0; }
  .type-product .article-header .product-background {
    position: absolute;
    top: 0;
    bottom: 35%;
    left: 0;
    right: 0;
    background: #f0f0f0; }
  .type-product .article-header .content-wrapper, .type-product .article-header .article-full .main-content, .article-full .type-product .article-header .main-content, .type-product .article-header .facts {
    position: relative;
    padding: 0; }
    @media (min-width: 45em) {
      .type-product .article-header .content-wrapper, .type-product .article-header .article-full .main-content, .article-full .type-product .article-header .main-content, .type-product .article-header .facts {
        padding-left: -2rem;
        padding-right: -2rem; } }
  .type-product .article-header .content-block {
    position: relative;
    width: 100%;
    height: 100%; }
    @media (min-width: 45em) {
      .type-product .article-header .content-block {
        left: 5%;
        margin-top: 3.2rem;
        margin-left: -2rem;
        margin-right: -2rem; } }
    .type-product .article-header .content-block .elm-image {
      position: relative;
      max-width: 720px;
      width: 100%;
      float: none;
      left: 5%;
      right: 0;
      margin-left: auto;
      margin-right: auto;
      padding-top: 6rem; }
      .ie8 .type-product .article-header .content-block .elm-image {
        float: none;
        margin: 0 auto; }
      @media (min-width: 45em) {
        .type-product .article-header .content-block .elm-image {
          left: 15%;
          top: 0;
          padding-top: 0;
          margin-left: 10%; } }
    .type-product .article-header .content-block .elm-content {
      position: absolute;
      top: 0.8rem;
      left: 2rem;
      float: none;
      width: auto;
      max-width: 640px;
      transition: color 1s ease;
      text-shadow: 0 0 2px rgba(255, 255, 255, 0.5), 0 0 25px rgba(255, 255, 255, 0.3); }
      @media (min-width: 45em) {
        .type-product .article-header .content-block .elm-content {
          top: 0; } }
    .type-product .article-header .content-block .elm-actions {
      position: relative;
      margin: 1.6rem 0;
      text-align: center; }
      .type-product .article-header .content-block .elm-actions a {
        font-family: "Coloplast", arial, sans-serif;
        font-weight: 300;
        text-shadow: 0 0 2px rgba(255, 255, 255, 0.5), 0 0 25px rgba(255, 255, 255, 0.3); }
    .type-product .article-header .content-block.background-light .elm-content {
      color: #fff; }

.type-product .article-header-3d {
  background-image: linear-gradient(to bottom, #f0f0f0 0%, #f0f0f0 71.8181%, #fff 71.8181%, #fff 100%);
  margin-bottom: 4rem; }
  .type-product .article-header-3d .content-block {
    overflow: hidden; }
    .type-product .article-header-3d .content-block .elm-image {
      background: none; }
    .type-product .article-header-3d .content-block .elm-content {
      position: absolute;
      margin-top: 0;
      top: 9%; }
    .type-product .article-header-3d .content-block .elm-actions {
      top: auto;
      bottom: 0.8rem; }

.type-product .main-content {
  max-width: 696px;
  margin-left: auto;
  margin-right: auto; }
  .type-product .main-content .content-block .elm-image {
    margin-top: 1.6rem;
    margin-bottom: 25px; }
    .type-product .main-content .content-block .elm-image.full-width {
      width: 100%;
      float: right;
      margin-left: 0;
      margin-right: 0;
      clear: none; }
      .type-product .main-content .content-block .elm-image.full-width img {
        width: 100%; }
    .type-product .main-content .content-block .elm-image.inline-left {
      clear: left;
      width: 100%;
      margin-left: 0;
      margin-right: 1.2rem;
      margin-top: 0.4rem;
      margin-bottom: 25px; }
      @media (min-width: 30em) {
        .type-product .main-content .content-block .elm-image.inline-left {
          clear: left;
          float: left;
          width: 50%; } }
      .ie8 .type-product .main-content .content-block .elm-image.inline-left {
        float: none;
        margin: 0 auto; }
    .type-product .main-content .content-block .elm-image.inline-right {
      clear: right;
      margin-left: 1.2rem;
      margin-right: 0;
      margin-top: 0.4rem;
      margin-bottom: 25px; }
      @media (min-width: 30em) {
        .type-product .main-content .content-block .elm-image.inline-right {
          clear: right;
          float: right;
          width: 50%; } }
      .ie8 .type-product .main-content .content-block .elm-image.inline-right {
        float: none;
        margin: 0 auto; }
  .type-product .main-content .content-block .elm-content {
    width: auto;
    float: none;
    clear: none;
    display: inline; }

@media (min-width: 66.66667em) {
  .article-header .elm-image {
    left: 10%; } }

.banner {
  background: #f5f5f5; }
  .banner .content-wrapper, .banner .article-full .main-content, .article-full .banner .main-content, .banner .facts {
    padding-top: 1.6rem;
    padding-bottom: 2rem; }
  .banner h1 {
    font-size: 30px;
    font-size: 2rem;
    line-height: 36px;
    line-height: 2.4rem; }
  .banner .elm-content {
    float: none;
    width: auto;
    margin: 0 auto;
    max-width: 636px; }

.related, .animations {
  background-color: #f5f5f5; }
  .related .content-wrapper > h2, .related .article-full .main-content > h2, .article-full .related .main-content > h2, .related .facts > h2, .related nav.primary .teaser .content-wrapper > .h2, nav.primary .teaser .related .content-wrapper > .h2, .related .article-full nav.primary .teaser .main-content > .h2, nav.primary .teaser .related .article-full .main-content > .h2, .article-full .related nav.primary .teaser .main-content > .h2, nav.primary .teaser .article-full .related .main-content > .h2, .related nav.primary .teaser .facts > .h2, nav.primary .teaser .related .facts > .h2, .animations .content-wrapper > h2, .animations .article-full .main-content > h2, .article-full .animations .main-content > h2, .animations .facts > h2, .animations nav.primary .teaser .content-wrapper > .h2, nav.primary .teaser .animations .content-wrapper > .h2, .animations .article-full nav.primary .teaser .main-content > .h2, nav.primary .teaser .animations .article-full .main-content > .h2, .article-full .animations nav.primary .teaser .main-content > .h2, nav.primary .teaser .article-full .animations .main-content > .h2, .animations nav.primary .teaser .facts > .h2, nav.primary .teaser .animations .facts > .h2 {
    margin: 1.2rem 0 -0.8rem 0; }
    .ie8 .related .content-wrapper > h2, .ie8 .related .article-full .main-content > h2, .article-full .ie8 .related .main-content > h2, .ie8 .related .facts > h2, .ie8 .related nav.primary .teaser .content-wrapper > .h2, nav.primary .teaser .ie8 .related .content-wrapper > .h2, .ie8 .related .article-full nav.primary .teaser .main-content > .h2, nav.primary .teaser .ie8 .related .article-full .main-content > .h2, .article-full .ie8 .related nav.primary .teaser .main-content > .h2, nav.primary .teaser .article-full .ie8 .related .main-content > .h2, .ie8 .related nav.primary .teaser .facts > .h2, nav.primary .teaser .ie8 .related .facts > .h2, .ie8 .animations .content-wrapper > h2, .ie8 .animations .article-full .main-content > h2, .article-full .ie8 .animations .main-content > h2, .ie8 .animations .facts > h2, .ie8 .animations nav.primary .teaser .content-wrapper > .h2, nav.primary .teaser .ie8 .animations .content-wrapper > .h2, .ie8 .animations .article-full nav.primary .teaser .main-content > .h2, nav.primary .teaser .ie8 .animations .article-full .main-content > .h2, .article-full .ie8 .animations nav.primary .teaser .main-content > .h2, nav.primary .teaser .article-full .ie8 .animations .main-content > .h2, .ie8 .animations nav.primary .teaser .facts > .h2, nav.primary .teaser .ie8 .animations .facts > .h2 {
      margin: 15px 0; }
  .related .content-wrapper > .flexslider .slides > li, .related .article-full .main-content > .flexslider .slides > li, .article-full .related .main-content > .flexslider .slides > li, .related .facts > .flexslider .slides > li, .animations .content-wrapper > .flexslider .slides > li, .animations .article-full .main-content > .flexslider .slides > li, .article-full .animations .main-content > .flexslider .slides > li, .animations .facts > .flexslider .slides > li {
    margin: 1.6rem 0 0.8rem 0; }
  .related .content-wrapper > .flexslider, .related .article-full .main-content > .flexslider, .article-full .related .main-content > .flexslider, .related .facts > .flexslider, .animations .content-wrapper > .flexslider, .animations .article-full .main-content > .flexslider, .article-full .animations .main-content > .flexslider, .animations .facts > .flexslider {
    margin: 0 -2rem; }
    .related .content-wrapper > .flexslider .slides > li .content-block, .related .article-full .main-content > .flexslider .slides > li .content-block, .article-full .related .main-content > .flexslider .slides > li .content-block, .related .facts > .flexslider .slides > li .content-block, .animations .content-wrapper > .flexslider .slides > li .content-block, .animations .article-full .main-content > .flexslider .slides > li .content-block, .article-full .animations .main-content > .flexslider .slides > li .content-block, .animations .facts > .flexslider .slides > li .content-block {
      margin: 0 2rem; }
  .related .type-video .elm-image, .animations .type-video .elm-image {
    position: relative; }
    .related .type-video .elm-image:before, .animations .type-video .elm-image:before {
      font-size: 3rem;
      color: white;
      height: 1em;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      margin: auto; }
  .related .flex-direction-nav, .animations .flex-direction-nav {
    display: none; }
  .related .flex-control-nav, .animations .flex-control-nav {
    bottom: 0; }
    @media (min-width: 45em) {
      .related .flex-control-nav, .animations .flex-control-nav {
        bottom: 0.8rem; } }
  @media (min-width: 45em) {
    .related .flex-direction-nav, .animations .flex-direction-nav {
      display: block; }
    .related .flex-control-nav, .animations .flex-control-nav {
      display: none; }
    .related .content-block .elm-image, .animations .content-block .elm-image {
      width: 46.57534%;
      float: left;
      margin-right: -100%;
      margin-left: 0;
      clear: none; }
    .related .content-block .elm-content, .animations .content-block .elm-content {
      width: 46.57534%;
      float: right;
      margin-left: 0;
      margin-right: 0;
      clear: none; } }

.features {
  background: #f5f5f5; }
  .features ul {
    margin: 2.4rem 0;
    padding: 0;
    list-style: none; }
    .ie8 .features ul {
      margin: 30px 0; }
  .features li {
    padding-left: 100px;
    overflow: hidden; }
    .features li:nth-child(n+2) {
      margin-top: 1.6rem; }
  .features .icon {
    display: inline;
    float: left;
    margin-left: -100px;
    width: 80px;
    height: 80px;
    font-size: 80px; }
  @media (min-width: 55em) {
    .features ul {
      display: table;
      width: 100%;
      table-layout: fixed; }
    .features li {
      display: table-cell;
      vertical-align: top;
      text-align: left;
      padding-right: 1.0989%;
      margin-top: 0; }
    .features .icon {
      margin-top: 0.8rem; } }

.facts {
  max-width: 30em; }
  .ie8 .facts {
    margin-top: 25px; }
  .facts .flex-direction-nav {
    display: none; }
  .facts .flex-control-nav {
    position: static;
    bottom: auto;
    margin: 0.8rem 0 4rem; }
    .ie8 .facts .flex-control-nav {
      margin: 5px 0 55px 0; }
    .facts .flex-control-nav ul {
      counter-reset: element; }
    .facts .flex-control-nav li {
      counter-increment: element; }
    .facts .flex-control-nav .flex-active {
      position: relative; }
      .facts .flex-control-nav .flex-active:before {
        content: '';
        width: 1px;
        height: 20px;
        position: absolute;
        left: 50%;
        margin-left: 0px;
        background-color: #00b2ce;
        bottom: -20px; }
      .facts .flex-control-nav .flex-active:after {
        content: counter(element);
        text-align: center;
        text-indent: 0;
        position: absolute;
        font-size: 28px;
        font-family: "Coloplast", arial, sans-serif;
        color: #00b2ce;
        font-weight: 300;
        bottom: -64px;
        left: 50%;
        line-height: 44px;
        width: 44px;
        height: 44px;
        box-shadow: inset 0 0 0 1px #00b2ce;
        border-radius: 44px;
        margin-left: -22px; }

.contact-page h2, .contact-page nav.primary .teaser .h2, nav.primary .teaser .contact-page .h2 {
  font-size: 30px;
  font-size: 2rem;
  line-height: 36px;
  line-height: 2.4rem;
  line-height: 42px;
  line-height: 2.8rem;
  border-bottom: 1px solid #e8e8e8; }

.contact-page .contact-info,
.contact-page .contact-form {
  margin-bottom: 2em; }
  .contact-page .contact-info:before, .contact-page .contact-info:after,
  .contact-page .contact-form:before,
  .contact-page .contact-form:after {
    content: " ";
    display: table; }
  .contact-page .contact-info:after,
  .contact-page .contact-form:after {
    *zoom: 1;
    clear: both; }

@media (min-width: 55em) {
  .contact-page .contact-info,
  .contact-page .contact-form {
    margin-bottom: 0; }
  .contact-page .contact-info {
    width: 41.02564%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none; }
  .contact-page .contact-form {
    width: 49.45055%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none; }
    .contact-page .contact-form h2, .contact-page .contact-form nav.primary .teaser .h2, nav.primary .teaser .contact-page .contact-form .h2 {
      border: 0; } }

.form-quality-of-life .label-group {
  display: none; }

.form-quality-of-life .input-group-label {
  color: #707070; }

.form-quality-of-life label {
  background: #00b2ce;
  color: #fff; }
  .form-quality-of-life label.checked {
    background: #fff !important;
    color: #707070; }

.form-quality-of-life .reference {
  margin: 1.6rem 0;
  font-size: 12px;
  font-size: 0.8rem;
  line-height: 18px;
  line-height: 1.2rem;
  text-align: right; }

@media (min-width: 30em) {
  .form-quality-of-life label {
    /*
      .label {
          display:none;
      }
      .label-value {
          display:block;
      }
      */ }
    .form-quality-of-life label .label {
      font-size: 12px;
      font-size: 0.8rem;
      line-height: 18px;
      line-height: 1.2rem; } }

@media (min-width: 45em) {
  .form-quality-of-life h1,
  .form-quality-of-life h2,
  .form-quality-of-life nav.primary .teaser .h2, nav.primary .teaser
  .form-quality-of-life .h2 {
    clear: both; }
  .form-quality-of-life .label-group {
    display: table;
    table-layout: fixed;
    width: 100%;
    margin-top: 1.2rem;
    margin-bottom: 1.2rem;
    width: 49.45055%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none;
    clear: both; }
    .form-quality-of-life .label-group .label {
      display: table-cell;
      width: 2%;
      text-align: center;
      vertical-align: bottom;
      font-size: 12px;
      font-size: 0.8rem;
      line-height: 18px;
      line-height: 1.2rem; }
  .form-quality-of-life label .label {
    font-size: 15px;
    font-size: 1rem;
    line-height: 24px;
    line-height: 1.6rem;
    display: none; }
  .form-quality-of-life label .label-value {
    display: block; }
  .form-quality-of-life .input-group-label {
    min-height: 40px;
    margin-top: 0;
    margin-bottom: 15px;
    padding: 8px 0.8rem;
    width: 49.45055%;
    float: left;
    margin-right: -100%;
    margin-left: 0;
    clear: none;
    font-size: 15px;
    font-size: 1rem;
    line-height: 24px;
    line-height: 1.6rem;
    font-family: Arial, Helvetica, sans-serif;
    background: #fff;
    border-radius: 4px; }
  .form-quality-of-life .compact-group {
    width: 49.45055%;
    float: right;
    margin-left: 0;
    margin-right: 0;
    clear: none; } }

.form-header {
  margin-top: 0;
  padding-top: 2rem;
  padding-bottom: 2rem;
  background: white; }
  .ie8 .form-header {
    padding-top: 30px;
    padding-bottom: 30px; }
  .form-header h1 {
    font-size: 30px;
    font-size: 2rem;
    line-height: 36px;
    line-height: 2.4rem; }
    @media (min-width: 45em) {
      .form-header h1 {
        font-size: 50px;
        font-size: 3.33333rem;
        line-height: 54px;
        line-height: 3.6rem; } }

.form-page {
  margin-bottom: 3.2rem; }
  .form-page h1,
  .form-page h2,
  .form-page nav.primary .teaser .h2, nav.primary .teaser
  .form-page .h2 {
    color: #00b2ce;
    font-size: 30px;
    font-size: 2rem;
    line-height: 36px;
    line-height: 2.4rem; }
    .form-page h1 + hr,
    .form-page h2 + hr,
    .form-page nav.primary .teaser .h2 + hr, nav.primary .teaser
    .form-page .h2 + hr {
      margin-top: 0;
      margin-bottom: 1rem; }
  .form-page h3 {
    color: #00b2ce;
    font-size: 18px;
    font-size: 1.2rem;
    line-height: 24px;
    line-height: 1.6rem; }
    @media (min-width: 45em) {
      .form-page h3 {
        font-size: 22px;
        font-size: 1.46667rem;
        line-height: 30px;
        line-height: 2rem; } }
    .form-page h3 + hr {
      margin-top: 0; }
  .form-page h4 {
    font-size: 15px;
    font-size: 1rem;
    line-height: 24px;
    line-height: 1.6rem; }
    @media (min-width: 45em) {
      .form-page h4 {
        font-size: 18px;
        font-size: 1.2rem;
        line-height: 24px;
        line-height: 1.6rem; } }
  .form-page .elm-image {
    display: none; }
    .form-page .elm-image img {
      display: block;
      max-width: 100%; }
  .form-page .elm-content {
    margin-bottom: 2rem; }
  @media (min-width: 45em) {
    .form-page .elm-content {
      width: 49.45055%;
      float: left;
      margin-right: -100%;
      margin-left: 0;
      clear: none; }
      .form-page .elm-content.full-width {
        width: 100%;
        float: right;
        margin-left: 0;
        margin-right: 0;
        clear: none; }
    .form-page .elm-image {
      display: block;
      width: 41.02564%;
      float: right;
      margin-left: 0;
      margin-right: 0;
      clear: none; } }
  @media (min-width: 55em) {
    .form-page .elm-content {
      width: 41.02564%;
      float: left;
      margin-right: -100%;
      margin-left: 0;
      clear: none; }
      .form-page .elm-content.full-width {
        width: 100%;
        float: right;
        margin-left: 0;
        margin-right: 0;
        clear: none; }
    .form-page .elm-image {
      display: block;
      width: 49.45055%;
      float: right;
      margin-left: 0;
      margin-right: 0;
      clear: none; } }

@media (min-width: 0) and (max-width: 55em) {
  .page-section .form-signup-cta {
    display: none; } }

section.solution-category {
  background-repeat: no-repeat;
  background-position: 50% 0; }
  section.solution-category .elm-image img {
    display: block;
    opacity: 0; }

@media (min-width: 45em) {
  body.page-solutions > * + * {
    margin-top: 0; }
  section.solution-category {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    min-height: 395px;
    position: relative; }
    section.solution-category:after {
      content: ' ';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.5);
      opacity: 0;
      transition: opacity .5s ease;
      -webkit-backface-visibility: hidden; }
    section.solution-category .content-wrapper, section.solution-category .article-full .main-content, .article-full section.solution-category .main-content, section.solution-category .facts {
      position: relative; }
    section.solution-category .elm-image {
      position: absolute;
      top: 0;
      left: 0; }
    section.solution-category .elm-content {
      padding-top: 3.2rem;
      padding-bottom: 3.2rem;
      position: relative;
      z-index: 1; }
      section.solution-category .elm-content > *:nth-child(n+2) {
        display: none;
        color: #fff; }
      section.solution-category .elm-content > h1 {
        display: block; }
    section.solution-category h1 {
      font-size: 50px;
      font-size: 3.33333rem;
      line-height: 54px;
      line-height: 3.6rem; }
    section.solution-category:hover:after, section.solution-category.over:after {
      opacity: 1; }
    section.solution-category:hover .elm-content > *, section.solution-category.over .elm-content > * {
      color: #fff;
      display: block; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5jc3MiLCJzb3VyY2VzIjpbImRlZmF1bHQuc2NzcyIsImNvbXBhc3MvX3Jlc2V0LnNjc3MiLCJjb21wYXNzL19jbGVhcmZpeC5zY3NzIiwiY29tcGFzcy9fdmVydGljYWwtcmh5dGhtcy5zY3NzIiwiY29tcGFzcy92ZXJ0aWNhbC1yaHl0aG1zL192ZXJ0aWNhbC1yaHl0aG1zLnNjc3MiLCJjb21wYXNzL3ZlcnRpY2FsLXJoeXRobXMvX3R5cG9ncmFwaHktdW5pdHMuc2NzcyIsImNvbXBhc3MvX2JyZWFrcG9pbnQuc2NzcyIsImNvbXBhc3MvYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcyIsImNvbXBhc3MvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzIiwiY29tcGFzcy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCJjb21wYXNzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsImNvbXBhc3MvYnJlYWtwb2ludC9wYXJzZXJzL19xdWVyeS5zY3NzIiwiY29tcGFzcy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiY29tcGFzcy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCJjb21wYXNzL2JyZWFrcG9pbnQvcGFyc2Vycy9fZG91YmxlLnNjc3MiLCJjb21wYXNzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiY29tcGFzcy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCJjb21wYXNzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQuc2NzcyIsImNvbXBhc3MvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsImNvbXBhc3MvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiY29tcGFzcy9icmVha3BvaW50L3BhcnNlcnMvX3Jlc29sdXRpb24uc2NzcyIsImNvbXBhc3MvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsImNvbXBhc3MvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsImNvbXBhc3MvYnJlYWtwb2ludC9fcmVzcG9uZC10by5zY3NzIiwiY29tcGFzcy9icmVha3BvaW50L19sZWdhY3ktc2V0dGluZ3Muc2NzcyIsImNvbXBhc3MvX3Npbmd1bGFyaXR5Z3Muc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9faGVscGVycy5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX3NldHRpbmdzLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fZmluZC5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX3Nhc3MtbGlzdHMuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19jb2x1bW5zLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc3Bhbi1zaGFyZWQuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9oZWxwZXJzL19kaXJlY3Rpb25zLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fc29ydC5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX2JhY2tncm91bmQtZ3JpZC5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2hlbHBlcnMvX3N0ci1yZXBsYWNlLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvaGVscGVycy9fbGF5b3V0LnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvX2xhbmd1YWdlLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvbGFuZ3VhZ2UvX3BhcnNlLWxpc3Quc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9sYW5ndWFnZS9fcGFyc2UtYWRkLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvbGFuZ3VhZ2UvX3NwYW4uc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9fbWF0aC5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL21hdGgvX2NvbHVtbnMuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9tYXRoL19ndXR0ZXJzLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvbWF0aC9fY29udGV4dC5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL21hdGgvX2dyaWQuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9fZ3JpZHMuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9ncmlkcy9fYWRkLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvZ3JpZHMvX2ZpbmQuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9fZ3V0dGVycy5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2d1dHRlcnMvX2FkZC5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2d1dHRlcnMvX2ZpbmQuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9fZ3V0dGVyLXN0eWxlcy5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2d1dHRlci1zdHlsZXMvX2FkZC5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2d1dHRlci1zdHlsZXMvX2ZpbmQuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9ndXR0ZXItc3R5bGVzL19oZWxwZXJzLnNjc3MiLCJjb21wYXNzL3Npbmd1bGFyaXR5Z3MvX2FwaS5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2FwaS9fZmxvYXQuc2NzcyIsImNvbXBhc3Mvc2luZ3VsYXJpdHlncy9hcGkvX2lzb2xhdGlvbi5zY3NzIiwiY29tcGFzcy9zaW5ndWxhcml0eWdzL2FwaS9fY2FsYy5zY3NzIiwiZ2xvYmJpbmcvX3ZhcmlhYmxlcy5zY3NzIiwidmFyaWFibGVzL19jb2xvcnMuc2NzcyIsInZhcmlhYmxlcy9fZ3JpZC5zY3NzIiwidmFyaWFibGVzL190eXBvZ3JhcGh5LnNjc3MiLCJnbG9iYmluZy9fYWJzdHJhY3Rpb25zLnNjc3MiLCJhYnN0cmFjdGlvbnMvX2xheW91dC5zY3NzIiwiYWJzdHJhY3Rpb25zL19zcHJpdGVzLTJ4LnNjc3MiLCJhYnN0cmFjdGlvbnMvX3Nwcml0ZXMuc2NzcyIsImFic3RyYWN0aW9ucy9fdHlwb2dyYXBoeS5zY3NzIiwiZ2xvYmJpbmcvX2Jhc2Uuc2NzcyIsImJhc2UvX2NjX2ljb25zLnNjc3MiLCJiYXNlL19lbGVtZW50cy5zY3NzIiwiYmFzZS9faWNvbnMuc2NzcyIsImJhc2UvX2xheW91dC5zY3NzIiwiYmFzZS9fbGlua3Muc2NzcyIsImJhc2UvX3R5cG9ncmFwaHkuc2NzcyIsImdsb2JiaW5nL19jb21wb25lbnRzLnNjc3MiLCJjb21wb25lbnRzL19jb2xvcmJveC5zY3NzIiwiY29tcG9uZW50cy9fY29udGVudF9lbGVtZW50cy5zY3NzIiwiY29tcG9uZW50cy9fZmlsdGVycy5zY3NzIiwiY29tcG9uZW50cy9fZmxleHNsaWRlci5zY3NzIiwiY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCJjb21wb25lbnRzL19mb3JtX2VsZW1lbnRzLnNjc3MiLCJjb21wb25lbnRzL19mb3JtX29yZGVyX3NhbXBsZS5zY3NzIiwiY29tcG9uZW50cy9fZm9ybV9zaWdudXAuc2NzcyIsImNvbXBvbmVudHMvX2dyaWRfbGlzdC5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19oZXJvLnNjc3MiLCJjb21wb25lbnRzL19tYWduaWZpYy5zY3NzIiwiY29tcG9uZW50cy9fbWFnbmlmaWNfcG9wdXBzLnNjc3MiLCJjb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19zdGF0ZV9pbmRpY2F0b3Iuc2NzcyIsImNvbXBvbmVudHMvX2Nvb2tpZS1kaXNjbGFpbWVyLnNjc3MiLCJjb21wb25lbnRzL19wb3B1cC5zY3NzIiwiY29tcG9uZW50cy9faWMtdG9vbC1zdXJ2ZXkuc2NzcyIsImdsb2JiaW5nL19wYWdlcy5zY3NzIiwicGFnZXMvX2FydGljbGVfZnVsbC5zY3NzIiwicGFnZXMvX2NvbnRhY3RfcGFnZS5zY3NzIiwicGFnZXMvX2Zvcm1fcXVhbGl0eS1vZi1saWZlLnNjc3MiLCJwYWdlcy9fZnJvbnRwYWdlLnNjc3MiLCJwYWdlcy9fcHJvZmlsZV9mb3JtLnNjc3MiLCJwYWdlcy9fc2VjdGlvbi5zY3NzIiwicGFnZXMvX3NvbHV0aW9ucy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbkBpbXBvcnQgXCJjb21wYXNzXCI7XHJcbkBpbXBvcnQgXCJjb21wYXNzL3Jlc2V0XCI7XHJcbkBpbXBvcnQgXCJjb21wYXNzL3R5cG9ncmFwaHkvdmVydGljYWxfcmh5dGhtXCI7XHJcbkBpbXBvcnQgXCJicmVha3BvaW50XCI7XHJcbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzXCI7XHJcbiovXHJcblxyXG5cclxuQGltcG9ydCBcImNvbXBhc3MvcmVzZXRcIjtcclxuQGltcG9ydCBcImNvbXBhc3MvY2xlYXJmaXhcIjtcclxuQGltcG9ydCBcImNvbXBhc3MvdmVydGljYWwtcmh5dGhtc1wiO1xyXG5AaW1wb3J0IFwiY29tcGFzcy9icmVha3BvaW50XCI7XHJcbkBpbXBvcnQgXCJjb21wYXNzL3Npbmd1bGFyaXR5Z3NcIjtcclxuLy8gQGltcG9ydCBcInRvb2xraXQtbm8tY3NzXCI7XHJcbi8vQGltcG9ydCBcInZhcmlhYmxlcy8qKi8qXCI7XHJcbi8vQGltcG9ydCBcImFic3RyYWN0aW9ucy8qKi8qXCI7XHJcbi8vQGltcG9ydCBcImJhc2UvKiovKlwiO1xyXG4vL0BpbXBvcnQgXCJjb21wb25lbnRzLyoqLypcIjtcclxuLy9AaW1wb3J0IFwicGFnZXMvKiovKlwiO1xyXG5AaW1wb3J0IFwiZ2xvYmJpbmcvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCJnbG9iYmluZy9hYnN0cmFjdGlvbnNcIjtcclxuQGltcG9ydCBcImdsb2JiaW5nL2Jhc2VcIjtcclxuQGltcG9ydCBcImdsb2JiaW5nL2NvbXBvbmVudHNcIjtcclxuQGltcG9ydCBcImdsb2JiaW5nL3BhZ2VzXCI7XHJcblxyXG4vL3Rlc3QiLCIvKiBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0LyBcclxuICAgdjIuMCB8IDIwMTEwMTI2XHJcbiAgIExpY2Vuc2U6IG5vbmUgKHB1YmxpYyBkb21haW4pXHJcbiovXHJcblxyXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcclxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxyXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXHJcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXHJcbmIsIHUsIGksIGNlbnRlcixcclxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcclxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXHJcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxyXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcclxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxyXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcclxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBib3JkZXI6IDA7XHJcbiAgZm9udC1zaXplOiAxMDAlO1xyXG4gIGZvbnQ6IGluaGVyaXQ7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG59XHJcblxyXG4vKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXHJcbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsXHJcbmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcblxyXG5vbCwgdWwge1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbmJsb2NrcXVvdGUsIHEge1xyXG4gIHF1b3Rlczogbm9uZTtcclxufVxyXG5cclxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXHJcbnE6YmVmb3JlLCBxOmFmdGVyIHtcclxuICBjb250ZW50OiAnJztcclxuICBjb250ZW50OiBub25lO1xyXG59XHJcblxyXG50YWJsZSB7XHJcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICBib3JkZXItc3BhY2luZzogMDtcclxufSIsIi8qIENsZWFyZml4ZXMgKi9cclxuXHJcbkBtaXhpbiBsZWdhY3ktcGllLWNsZWFyZml4IHtcclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXFwwMDIwXCI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogMDtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB9XHJcbiAgKnpvb206IDE7XHJcbn1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICB9XHJcbiAgKnpvb206IDE7XHJcbn1cclxuIiwiLy8gPT09PT09PT09PVxyXG4vLyBDb21wYXNzIFZlcnRpY2FsIFJoeXRobXMgKFdpdGhvdXQgQ29tcGFzcylcclxuLy8gLS0tLS1cclxuLy8gVGhpcyBpcyBhIGdpdCByZXBvIGZvciB1c2luZyBDb21wYXNzIFZlcnRpY2FsIFJoeXRobXMgKHdpdGggUmVtKSB3aXRob3V0IHRoZSBDb21wYXNzIGRlcGVuZGVuY3kuXHJcbi8vIEl0J3MgYW4gdW5vZmZpY2lhbCBwb3J0IHRoYXQgd2lsbCBvbmx5IGJlIHVwZGF0ZWQgZnJvbSB0aW1lIHRvIHRpbWUuXHJcbi8vXHJcbi8vIERPQ1VNRU5UQVRJT046XHJcbi8vIENoZWNrIG91dCBDb21wYXNzIEJldGEgZm9yIGRvY3Mgb24gaG93IHRvIHVzZSB0aGlzIHZlcnRpY2FsIHJoeXRobXMuXHJcbi8vIGh0dHA6Ly9iZXRhLmNvbXBhc3Mtc3R5bGUub3JnL3JlZmVyZW5jZS9jb21wYXNzL3R5cG9ncmFwaHkvdmVydGljYWxfcmh5dGhtL1xyXG4vL1xyXG4vLyBDcmVkaXRzOlxyXG4vLyBAQ2hyaXNlcHBzdGVpbiAmIENvbXBhc3MgdGVhbSBmb3IgY3JlYXRpbmcgdGhlIGF3ZXNvbWUgdmVydGljYWwgcmh5dGhtcyBtb2R1bGVcclxuLy9cclxuLy8gTElDRU5TRTpcclxuLy8gTUlUXHJcbi8vID09PT09PT09PT1cclxuQGltcG9ydCBcInZlcnRpY2FsLXJoeXRobXMvdmVydGljYWwtcmh5dGhtc1wiOyIsIkBpbXBvcnQgXCJ0eXBvZ3JhcGh5LXVuaXRzXCI7XHJcblxyXG4vLyBUaGUgZGVmYXVsdCBmb250IHNpemUgZm9yIGFsbCB0ZXh0IGluIHBpeGVsc1xyXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XHJcblxyXG4vLyBUaGUgZGlzdGFuY2UgYmV0d2VlbiB0ZXh0IGJhc2VsaW5lcyAodmVydGljYWwgcmh5dGhtKSBpbiBwaXhlbHMuXHJcbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xyXG5cclxuLy8gVGhlIGxlbmd0aCB1bml0IGluIHdoaWNoIHRvIG91dHB1dCByaHl0aG0gdmFsdWVzLlxyXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS4gUGVyY2VudCB1bml0cyBjYW4ndCBiZSB1c2VkIHNpbmNlIHRoZXlcclxuLy8gbWFrZSBjYWxjdWxhdGluZyBwYWRkaW5nIGFuZCBtYXJnaW5zIGltcHJhY3RpY2FsLCBhbmQgcGVyY2VudGFnZSBib3JkZXJzIGFyZVxyXG4vLyBub3QgdmFsaWQgb3Igc3VwcG9ydGVkIGluIGNzcy5cclxuJHJoeXRobS11bml0OiAnZW0nICFkZWZhdWx0O1xyXG5cclxuLy8gV2hldGhlciB0byBvdXRwdXQgZmFsbGJhY2sgdmFsdWVzIGluIHB4IHdoZW4gdXNpbmcgcmVtIGFzIHRoZSByaHl0aG0tdW5pdC5cclxuJHJlbS13aXRoLXB4LWZhbGxiYWNrOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8gRGVmYXVsdCB2YWx1ZXMgZm9yIHJoeXRobSBib3JkZXJzIHByb3BlcnRpZXMuXHJcbi8vIFN1cHBvcnRzIHN0eWxlIGFsb25lIGVnLiBgc29saWRgIG9yIGxpc3Qgb2Ygc3R5bGUgYW5kIGNvbG9yIGVnLiBgc29saWQgI2FhYWA7XHJcbiRkZWZhdWx0LXJoeXRobS1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XHJcblxyXG4vLyBBbGxvd3MgdGhlIGBhZGp1c3QtZm9udC1zaXplLXRvYCBtaXhpbiBhbmQgdGhlIGBsaW5lcy1mb3ItZm9udC1zaXplYCBmdW5jdGlvblxyXG4vLyB0byByb3VuZCB0aGUgbGluZSBoZWlnaHQgdG8gdGhlIG5lYXJlc3QgaGFsZiBsaW5lIGhlaWdodCBpbnN0ZWFkIG9mIHRoZVxyXG4vLyBuZWFyZXN0IGludGVncmFsIGxpbmUgaGVpZ2h0IHRvIGF2b2lkIGxhcmdlIHNwYWNpbmcgYmV0d2VlbiBsaW5lcy5cclxuJHJvdW5kLXRvLW5lYXJlc3QtaGFsZi1saW5lOiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbi8vIEVuc3VyZSB0aGVyZSBpcyBhdCBsZWFzdCB0aGlzIG1hbnkgcGl4ZWxzXHJcbi8vIG9mIHZlcnRpY2FsIHBhZGRpbmcgYWJvdmUgYW5kIGJlbG93IHRoZSB0ZXh0LlxyXG4kbWluLWxpbmUtcGFkZGluZzogMnB4ICFkZWZhdWx0O1xyXG5cclxuLy8gVGhlIGxlYWRlciBpcyB0aGUgYW1vdW50IG9mIHdoaXRlc3BhY2UgaW4gYSBsaW5lLlxyXG4vLyBJdCBtaWdodCBiZSB1c2VmdWwgaW4geW91ciBjYWxjdWxhdGlvbnMuXHJcbiRiYXNlLWxlYWRlcjogY29udmVydC1sZW5ndGgoJGJhc2UtbGluZS1oZWlnaHQgLSAkYmFzZS1mb250LXNpemUsICRyaHl0aG0tdW5pdCwgJGJhc2UtZm9udC1zaXplKTtcclxuXHJcbi8vIFRoZSBoYWxmLWxlYWRlciBpcyB0aGUgYW1vdW50IG9mIHdoaXRlc3BhY2UgYWJvdmUgYW5kIGJlbG93IGEgbGluZS5cclxuLy8gSXQgbWlnaHQgYmUgdXNlZnVsIGluIHlvdXIgY2FsY3VsYXRpb25zLlxyXG4kYmFzZS1oYWxmLWxlYWRlcjogJGJhc2UtbGVhZGVyIC8gMjtcclxuXHJcbi8vIEBwcml2YXRlIFdoZXRoZXIgdGhlIHJoeXRobSBvdXRwdXQgaXMgaW4gYWJzb2x1dGUgdW5pdHMgKHB4KSBvciBub3QgKGVtLCByZW0pXHJcbiRyZWxhdGl2ZS1mb250LXNpemluZzogaWYoJHJoeXRobS11bml0ID09IHB4LCBmYWxzZSwgdHJ1ZSk7XHJcblxyXG4vLyBWYWxpZGF0ZSB1bml0c1xyXG5AaWYgdW5pdCgkYmFzZS1mb250LXNpemUpICAgIT0gJ3B4JyB7XHJcbiAgQHdhcm4gXCIkYmFzZS1mb250LXNpemUgbXVzdCByZXNvbHZlIHRvIGEgcGl4ZWwgdW5pdC5cIjtcclxufVxyXG5cclxuQGlmIHVuaXQoJGJhc2UtbGluZS1oZWlnaHQpICE9ICdweCcge1xyXG4gIEB3YXJuIFwiJGJhc2UtbGluZS1oZWlnaHQgbXVzdCByZXNvbHZlIHRvIGEgcGl4ZWwgdW5pdC5cIjtcclxufVxyXG5cclxuQGlmICRyaHl0aG0tdW5pdCAhPSAncHgnIGFuZCAkcmh5dGhtLXVuaXQgIT0gJ2VtJyBhbmQgJHJoeXRobS11bml0ICE9ICdyZW0nIHtcclxuICBAd2FybiBcIiRyaHl0aG0tdW5pdCBtdXN0IGJlIGBweGAsIGBlbWAgb3IgYHJlbWAuXCI7XHJcbn1cclxuXHJcbi8vIENhbGN1bGF0ZSByaHl0aG0gdW5pdHMuXHJcbkBmdW5jdGlvbiByaHl0aG0oJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRvZmZzZXQ6IDApIHtcclxuICAkcmh5dGhtOiBjb252ZXJ0LWxlbmd0aCgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRvZmZzZXQsICRyaHl0aG0tdW5pdCwgJGZvbnQtc2l6ZSk7XHJcbiAgQGlmIHVuaXQoJHJoeXRobSkgPT0gcHgge1xyXG4gICAgJHJoeXRobTogZmxvb3IoJHJoeXRobSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHJoeXRobTtcclxufVxyXG5cclxuLy8gQ2FsY3VsYXRlIHRoZSBtaW5pbXVtIG11bHRpcGxlIG9mIHJoeXRobSB1bml0cyBuZWVkZWQgdG8gY29udGFpbiB0aGUgZm9udC1zaXplLlxyXG5AZnVuY3Rpb24gbGluZXMtZm9yLWZvbnQtc2l6ZSgkZm9udC1zaXplKSB7XHJcbiAgJGxpbmVzOiBpZigkcm91bmQtdG8tbmVhcmVzdC1oYWxmLWxpbmUsXHJcbiAgICAgICAgICBjZWlsKDIgKiAkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpIC8gMixcclxuICAgICAgICAgIGNlaWwoJGZvbnQtc2l6ZSAvICRiYXNlLWxpbmUtaGVpZ2h0KSk7XHJcbiAgLy8gSWYgbGluZXMgYXJlIGNyYW1wZWQgaW5jbHVkZSBzb21lIGV4dHJhIGxlYWQuXHJcbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xyXG4gICAgJGxpbmVzOiAkbGluZXMgKyBpZigkcm91bmQtdG8tbmVhcmVzdC1oYWxmLWxpbmUsIDAuNSwgMSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJGxpbmVzO1xyXG59XHJcblxyXG4vLyBAcHJpdmF0ZSBPdXRwdXRzIHJoeXRobSB2YWx1ZXMuIEZvciByZW0gdW5pdHMsIG91dHB1dHMgcGl4ZWwgZmFsbGJhY2tzXHJcbi8vIGJ5IGRlZmF1bHQuXHJcbkBtaXhpbiBvdXRwdXQtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcykge1xyXG4gIEBpZiAkcmh5dGhtLXVuaXQgPT0gcmVtIGFuZCAkcmVtLXdpdGgtcHgtZmFsbGJhY2sge1xyXG4gICAgQGluY2x1ZGUgcmVtKCRwcm9wZXJ0eSwgJHZhbHVlcyk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkb3V0cHV0OiAoKTtcclxuICAgIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcclxuICAgICAgQGlmIHVuaXQoJHZhbHVlKSA9PSBweCB7XHJcbiAgICAgICAgLy8gRW5zdXJlIGFsbCBwaXhlbCB2YWx1ZXMgYXJlIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgcGl4ZWwuXHJcbiAgICAgICAgJG91dHB1dDogam9pbigkb3V0cHV0LCByb3VuZCgkdmFsdWUpKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJG91dHB1dDogam9pbigkb3V0cHV0LCAkdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAjeyRwcm9wZXJ0eX06ICRvdXRwdXQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBFc3RhYmxpc2hlcyBhIGZvbnQgYmFzZWxpbmUgZm9yIHRoZSBnaXZlbiBmb250LXNpemUuXHJcbkBtaXhpbiBlc3RhYmxpc2gtYmFzZWxpbmUoJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XHJcbiAgJHJlbGF0aXZlLXNpemU6IDEwMCUgKiAoJGZvbnQtc2l6ZSAvICRicm93c2VyLWRlZmF1bHQtZm9udC1zaXplKTtcclxuXHJcbiAgQGlmIHN1cHBvcnQtbGVnYWN5LWJyb3dzZXIoaWUsIFwiNlwiKSBhbmQgKG5vdCAkcmVsYXRpdmUtZm9udC1zaXppbmcpIHtcclxuICAgIC8vIElFIDYgcmVmdXNlcyB0byByZXNpemUgZm9udHMgc2V0IGluIHBpeGVscyBhbmQgaXQgd2VpcmRseSByZXNpemVzIGZvbnRzXHJcbiAgICAvLyB3aG9zZSByb290IGlzIHNldCBpbiBlbXMuIFNvIHdlIHNldCB0aGUgcm9vdCBmb250IHNpemUgaW4gcGVyY2VudGFnZXMgb2ZcclxuICAgIC8vIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZSwgZXZlbiBpZiB3ZSBhcmUgdXNpbmcgYWJzb2x1dGUgc2l6ZXMgZWxzZXdoZXJlLlxyXG4gICAgKiBodG1sIHtcclxuICAgICAgZm9udC1zaXplOiAkcmVsYXRpdmUtc2l6ZTtcclxuICAgIH1cclxuICB9XHJcbiAgaHRtbCB7XHJcbiAgICBmb250LXNpemU6IGlmKCRyZWxhdGl2ZS1mb250LXNpemluZywgJHJlbGF0aXZlLXNpemUsICRmb250LXNpemUpO1xyXG5cclxuICAgIC8vIFdlYmtpdCBoYXMgYSBidWcgdGhhdCBwcmV2ZW50cyBsaW5lLWhlaWdodCBiZWluZyBzZXQgaW4gcmVtIG9uIDxodG1sPjtcclxuICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRoaXMgYW5kIHNpbXBsaWZ5IG91dHB1dCwgd2UgY2FuIHNldCBpbml0aWFsIGxpbmUtaGVpZ2h0XHJcbiAgICAvLyBpbiBlbXMgZm9yIGFsbCByZWxhdGl2ZSByaHl0aG0gdW5pdHMsIGV2ZW4gd2hlbiAkcmh5dGhtLXVuaXQgaXMgYHJlbWAuXHJcbiAgICBAaWYgJHJlbGF0aXZlLWZvbnQtc2l6aW5nIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IGNvbnZlcnQtbGVuZ3RoKCRiYXNlLWxpbmUtaGVpZ2h0LCBlbSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IHJvdW5kKCRiYXNlLWxpbmUtaGVpZ2h0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIFJlc2V0cyB0aGUgYmFzZWxpbmUgdG8gMSByaHl0aG0gdW5pdFxyXG4vLyBEb2VzIG5vdCB3b3JrIG9uIGVsZW1lbnRzIHdob3NlIGZvbnQtc2l6ZSBpcyBkaWZmZXJlbnQgZnJvbSAkYmFzZS1mb250LXNpemUuXHJcbi8vXHJcbi8vIEBkZXByZWNhdGVkIFRoaXMgbWl4aW4gd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IHJlbGVhc2UuXHJcbi8vIFBsZWFzZSB1c2UgYGFkanVzdC1sZWFkaW5nLXRvKDEpYCBpbnN0ZWFkLlxyXG5AbWl4aW4gcmVzZXQtYmFzZWxpbmUoJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XHJcbiAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oMSwgJGZvbnQtc2l6ZSk7XHJcbn1cclxuXHJcbi8vIFNob3cgYSBiYWNrZ3JvdW5kIGltYWdlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVidWcgeW91ciBhbGlnbm1lbnRzLlxyXG4vLyBBcyB0aGlzIGlzIGEgZGV2ZWxvcG1lbnQgZmVhdHVyZSwgdGhpcyBtaXhpbiBuZXZlciBvdXRwdXRzIHBpeGVsIGZhbGxiYWNrc1xyXG4vLyBmb3IgcmVtIG91dHB1dC5cclxuLy8gSW5jbHVkZSB0aGUgJGltZyBhcmd1bWVudCBpZiB5b3Ugd291bGQgcmF0aGVyIHVzZSB5b3VyIG93biBpbWFnZSB0aGFuIHRoZVxyXG4vLyBDb21wYXNzIGRlZmF1bHQgZ3JhZGllbnQgaW1hZ2UuXHJcbkBtaXhpbiBkZWJ1Zy12ZXJ0aWNhbC1hbGlnbm1lbnQoJGltZzogZmFsc2UpIHtcclxuICBAaWYgJGltZyB7XHJcbiAgICBiYWNrZ3JvdW5kOiBpbWFnZS11cmwoJGltZyk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAaW5jbHVkZSBiYXNlbGluZS1ncmlkLWJhY2tncm91bmQoaWYoJHJvdW5kLXRvLW5lYXJlc3QtaGFsZi1saW5lLCByaHl0aG0oMS8yKSwgcmh5dGhtKDEpKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBBZGp1c3QgYSBibG9jayB0byBoYXZlIGEgZGlmZmVyZW50IGZvbnQgc2l6ZSBhbmQgbGluZSBoZWlnaHQgdG8gbWFpbnRhaW4gdGhlXHJcbi8vIHJoeXRobS4gJGxpbmVzIHNwZWNpZmllcyBob3cgbWFueSBtdWx0aXBsZXMgb2YgdGhlIGJhc2VsaW5lIHJoeXRobSBlYWNoIGxpbmVcclxuLy8gb2YgdGhpcyBmb250IHNob3VsZCB1c2UgdXAuIEl0IGRvZXMgbm90IGhhdmUgdG8gYmUgYW4gaW50ZWdlciwgYnV0IGl0XHJcbi8vIGRlZmF1bHRzIHRvIHRoZSBzbWFsbGVzdCBpbnRlZ2VyIHRoYXQgaXMgbGFyZ2UgZW5vdWdoIHRvIGZpdCB0aGUgZm9udC5cclxuLy8gVXNlICRmcm9tLXNpemUgdG8gYWRqdXN0IGZyb20gYSBmb250LXNpemUgb3RoZXIgdGhhbiB0aGUgYmFzZSBmb250LXNpemUuXHJcbkBtaXhpbiBhZGp1c3QtZm9udC1zaXplLXRvKCR0by1zaXplLCAkbGluZXM6IGF1dG8sICRmcm9tLXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xyXG4gICR0by1zaXplOiBjb252ZXJ0LWxlbmd0aCgkdG8tc2l6ZSwgcHgsICRmcm9tLXNpemUpO1xyXG4gIEBpZiAkbGluZXMgPT0gYXV0byB7XHJcbiAgICAkbGluZXM6IGxpbmVzLWZvci1mb250LXNpemUoJHRvLXNpemUpO1xyXG4gIH1cclxuICBAaW5jbHVkZSBvdXRwdXQtcmh5dGhtKGZvbnQtc2l6ZSwgY29udmVydC1sZW5ndGgoJHRvLXNpemUsICRyaHl0aG0tdW5pdCwgJGZyb20tc2l6ZSkpO1xyXG4gIEBpbmNsdWRlIGFkanVzdC1sZWFkaW5nLXRvKCRsaW5lcywgJHRvLXNpemUpO1xyXG59XHJcblxyXG4vLyBBZGp1c3QgYSBibG9jayB0byBoYXZlIGRpZmZlcmVudCBsaW5lIGhlaWdodCB0byBtYWludGFpbiB0aGUgcmh5dGhtLlxyXG4vLyAkbGluZXMgc3BlY2lmaWVzIGhvdyBtYW55IG11bHRpcGxlcyBvZiB0aGUgYmFzZWxpbmUgcmh5dGhtIGVhY2ggbGluZSBvZiB0aGlzXHJcbi8vIGZvbnQgc2hvdWxkIHVzZSB1cC4gSXQgZG9lcyBub3QgaGF2ZSB0byBiZSBhbiBpbnRlZ2VyLCBidXQgaXQgZGVmYXVsdHMgdG8gdGhlXHJcbi8vIHNtYWxsZXN0IGludGVnZXIgdGhhdCBpcyBsYXJnZSBlbm91Z2ggdG8gZml0IHRoZSBmb250LlxyXG5AbWl4aW4gYWRqdXN0LWxlYWRpbmctdG8oJGxpbmVzLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUpIHtcclxuICBAaW5jbHVkZSBvdXRwdXQtcmh5dGhtKGxpbmUtaGVpZ2h0LCByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKSk7XHJcbn1cclxuXHJcbi8vIEFwcGx5IGxlYWRpbmcgd2hpdGVzcGFjZS4gVGhlICRwcm9wZXJ0eSBjYW4gYmUgbWFyZ2luIG9yIHBhZGRpbmcuXHJcbkBtaXhpbiBsZWFkZXIoJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRwcm9wZXJ0eTogbWFyZ2luKSB7XHJcbiAgQGluY2x1ZGUgb3V0cHV0LXJoeXRobSgjeyRwcm9wZXJ0eX0tdG9wLCByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKSk7XHJcbn1cclxuXHJcbi8vIEFwcGx5IGxlYWRpbmcgd2hpdGVzcGFjZSBhcyBwYWRkaW5nLlxyXG5AbWl4aW4gcGFkZGluZy1sZWFkZXIoJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUpIHtcclxuICBAaW5jbHVkZSBvdXRwdXQtcmh5dGhtKHBhZGRpbmctdG9wLCByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKSk7XHJcbn1cclxuXHJcbi8vIEFwcGx5IGxlYWRpbmcgd2hpdGVzcGFjZSBhcyBtYXJnaW4uXHJcbkBtaXhpbiBtYXJnaW4tbGVhZGVyKCRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XHJcbiAgQGluY2x1ZGUgb3V0cHV0LXJoeXRobShtYXJnaW4tdG9wLCByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKSk7XHJcbn1cclxuXHJcbi8vIEFwcGx5IHRyYWlsaW5nIHdoaXRlc3BhY2UuIFRoZSAkcHJvcGVydHkgY2FuIGJlIG1hcmdpbiBvciBwYWRkaW5nLlxyXG5AbWl4aW4gdHJhaWxlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJHByb3BlcnR5OiBtYXJnaW4pIHtcclxuICBAaW5jbHVkZSBvdXRwdXQtcmh5dGhtKCN7JHByb3BlcnR5fS1ib3R0b20sIHJoeXRobSgkbGluZXMsICRmb250LXNpemUpKTtcclxufVxyXG5cclxuLy8gQXBwbHkgdHJhaWxpbmcgd2hpdGVzcGFjZSBhcyBwYWRkaW5nLlxyXG5AbWl4aW4gcGFkZGluZy10cmFpbGVyKCRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XHJcbiAgQGluY2x1ZGUgb3V0cHV0LXJoeXRobShwYWRkaW5nLWJvdHRvbSwgcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSkpO1xyXG59XHJcblxyXG4vLyBBcHBseSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFzIG1hcmdpbi5cclxuQG1peGluIG1hcmdpbi10cmFpbGVyKCRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XHJcbiAgQGluY2x1ZGUgb3V0cHV0LXJoeXRobShtYXJnaW4tYm90dG9tLCByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKSk7XHJcbn1cclxuXHJcbi8vIFNob3J0aGFuZCBtaXhpbiB0byBhcHBseSB3aGl0ZXNwYWNlIGZvciB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIGFuZCBwYWRkaW5nLlxyXG5AbWl4aW4gcmh5dGhtKFxyXG4gICRsZWFkZXI6IDEsXHJcbiAgJHBhZGRpbmctbGVhZGVyOiAwLFxyXG4gICRwYWRkaW5nLXRyYWlsZXI6ICRwYWRkaW5nLWxlYWRlcixcclxuICAkdHJhaWxlcjogJGxlYWRlcixcclxuICAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemVcclxuKSB7XHJcbiAgQGluY2x1ZGUgbGVhZGVyKCRsZWFkZXIsICRmb250LXNpemUpO1xyXG4gIEBpbmNsdWRlIHBhZGRpbmctbGVhZGVyKCRwYWRkaW5nLWxlYWRlciwgJGZvbnQtc2l6ZSk7XHJcbiAgQGluY2x1ZGUgcGFkZGluZy10cmFpbGVyKCRwYWRkaW5nLXRyYWlsZXIsICRmb250LXNpemUpO1xyXG4gIEBpbmNsdWRlIHRyYWlsZXIoJHRyYWlsZXIsICRmb250LXNpemUpO1xyXG59XHJcblxyXG4vLyBTaG9ydGhhbmQgbWl4aW4gdG8gYXBwbHkgd2hpdGVzcGFjZSBmb3IgdG9wIGFuZCBib3R0b20gbWFyZ2lucy5cclxuQG1peGluIHJoeXRobS1tYXJnaW5zKFxyXG4gICRsZWFkZXI6IDEsXHJcbiAgJHRyYWlsZXI6ICRsZWFkZXIsXHJcbiAgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplXHJcbikge1xyXG4gIEBpbmNsdWRlIGxlYWRlcigkbGVhZGVyLCAkZm9udC1zaXplKTtcclxuICBAaW5jbHVkZSB0cmFpbGVyKCR0cmFpbGVyLCAkZm9udC1zaXplKTtcclxufVxyXG5cclxuLy8gU2hvcnRoYW5kIG1peGluIHRvIGFwcGx5IHdoaXRlc3BhY2UgZm9yIHRvcCBhbmQgYm90dG9tIHBhZGRpbmcuXHJcbkBtaXhpbiByaHl0aG0tcGFkZGluZyhcclxuICAkcGFkZGluZy1sZWFkZXI6IDEsXHJcbiAgJHBhZGRpbmctdHJhaWxlcjogJHBhZGRpbmctbGVhZGVyLFxyXG4gICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZVxyXG4pIHtcclxuICBAaW5jbHVkZSBwYWRkaW5nLWxlYWRlcigkcGFkZGluZy1sZWFkZXIsICRmb250LXNpemUpO1xyXG4gIEBpbmNsdWRlIHBhZGRpbmctdHJhaWxlcigkcGFkZGluZy10cmFpbGVyLCAkZm9udC1zaXplKTtcclxufVxyXG5cclxuLy8gQXBwbHkgYSBib3JkZXIgYW5kIHdoaXRlc3BhY2UgdG8gYW55IHNpZGUgd2l0aG91dCBkZXN0cm95aW5nIHRoZSB2ZXJ0aWNhbFxyXG4vLyByaHl0aG0uIFRoZSB3aGl0ZXNwYWNlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyLlxyXG5AbWl4aW4gYXBwbHktc2lkZS1yaHl0aG0tYm9yZGVyKFxyXG4gICRzaWRlLFxyXG4gICR3aWR0aDogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci13aWR0aCxcclxuICAkbGluZXM6IDEsXHJcbiAgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLFxyXG4gICRib3JkZXItc3R5bGU6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItc3R5bGVcclxuKSB7XHJcbiAgLy8gSWYgYXBwbHlpbmcgYm9yZGVycyB0byBhbGwgc2lkZXMsIHVzZSBzaG9ydGhhbmQgcHJvcGVydGllc1xyXG4gICRib3JkZXItcHJvcDogaWYoJHNpZGUgPT0gYWxsLCBib3JkZXIsIGJvcmRlci0jeyRzaWRlfSk7XHJcbiAgQGluY2x1ZGUgb3V0cHV0LXJoeXRobSgjeyRib3JkZXItcHJvcH0td2lkdGgsIGNvbnZlcnQtbGVuZ3RoKCR3aWR0aCwgJHJoeXRobS11bml0LCAkZm9udC1zaXplKSk7XHJcbiAgI3skYm9yZGVyLXByb3B9LXN0eWxlOiBudGgoJGJvcmRlci1zdHlsZSwgMSk7XHJcbiAgQGlmIHR5cGUtb2YoJGJvcmRlci1zdHlsZSkgPT0gbGlzdCBhbmQgbGVuZ3RoKCRib3JkZXItc3R5bGUpID4gMSB7XHJcbiAgICAjeyRib3JkZXItcHJvcH0tY29sb3I6IG50aCgkYm9yZGVyLXN0eWxlLCAyKTtcclxuICB9XHJcbiAgJHBhZGRpbmctcHJvcDogaWYoJHNpZGUgPT0gYWxsLCBwYWRkaW5nLCBwYWRkaW5nLSN7JHNpZGV9KTtcclxuICBAaW5jbHVkZSBvdXRwdXQtcmh5dGhtKCN7JHBhZGRpbmctcHJvcH0sIHJoeXRobSgkbGluZXMsICRmb250LXNpemUsICRvZmZzZXQ6ICR3aWR0aCkpO1xyXG59XHJcblxyXG4vLyBBcHBseSBhIGxlYWRpbmcgYm9yZGVyLlxyXG4vLyAkYm9yZGVyLXN0eWxlIGFuZCAkd2lkdGggYXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIENvbXBhc3MuXHJcbkBtaXhpbiBsZWFkaW5nLWJvcmRlcihcclxuICAkd2lkdGg6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItd2lkdGgsXHJcbiAgJGxpbmVzOiAxLFxyXG4gICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSxcclxuICAkYm9yZGVyLXN0eWxlOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXN0eWxlXHJcbikge1xyXG4gIEBpbmNsdWRlIGFwcGx5LXNpZGUtcmh5dGhtLWJvcmRlcih0b3AsICR3aWR0aCwgJGxpbmVzLCAkZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlKTtcclxufVxyXG5cclxuLy8gQXBwbHkgYSB0cmFpbGluZyBib3JkZXIuXHJcbkBtaXhpbiB0cmFpbGluZy1ib3JkZXIoXHJcbiAgJHdpZHRoOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXdpZHRoLFxyXG4gICRsaW5lczogMSxcclxuICAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsXHJcbiAgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZVxyXG4pIHtcclxuICBAaW5jbHVkZSBhcHBseS1zaWRlLXJoeXRobS1ib3JkZXIoYm90dG9tLCAkd2lkdGgsICRsaW5lcywgJGZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZSk7XHJcbn1cclxuXHJcbi8vIEFwcGx5IGJvdGggbGVhZGluZyBhbmQgdHJhaWxpbmcgYm9yZGVycy5cclxuQG1peGluIGhvcml6b250YWwtYm9yZGVycyhcclxuICAkd2lkdGg6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItd2lkdGgsXHJcbiAgJGxpbmVzOiAxLFxyXG4gICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSxcclxuICAkYm9yZGVyLXN0eWxlOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXN0eWxlXHJcbikge1xyXG4gIEBpbmNsdWRlIGxlYWRpbmctYm9yZGVyKCR3aWR0aCwgJGxpbmVzLCAkZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlKTtcclxuICBAaW5jbHVkZSB0cmFpbGluZy1ib3JkZXIoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xyXG59XHJcblxyXG4vLyBBbGlhcyBmb3IgYGhvcml6b250YWwtYm9yZGVyc2AgbWl4aW4uXHJcbkBtaXhpbiBoLWJvcmRlcnMoXHJcbiAgJHdpZHRoOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXdpZHRoLFxyXG4gICRsaW5lczogMSxcclxuICAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsXHJcbiAgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZVxyXG4pIHtcclxuICBAaW5jbHVkZSBob3Jpem9udGFsLWJvcmRlcnMoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xyXG59XHJcblxyXG4vLyBBcHBseSBib3JkZXJzIGFuZCB3aGl0ZXNwYWNlIGVxdWFsbHkgdG8gYWxsIHNpZGVzLlxyXG5AbWl4aW4gcmh5dGhtLWJvcmRlcnMoXHJcbiAgJHdpZHRoOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXdpZHRoLFxyXG4gICRsaW5lczogMSxcclxuICAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsXHJcbiAgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZVxyXG4pIHtcclxuICBAaW5jbHVkZSBhcHBseS1zaWRlLXJoeXRobS1ib3JkZXIoYWxsLCAkd2lkdGgsICRsaW5lcywgJGZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZSk7XHJcbn0iLCIvLyBAcHJpdmF0ZSBEZWZhdWx0IGZvbnQtc2l6ZSBmb3IgYWxsIGJyb3dzZXJzXHJcbiRicm93c2VyLWRlZmF1bHQtZm9udC1zaXplOiAxNnB4O1xyXG5cclxuLy8gQmFzZSBmb250IHNpemUgaW4gcGl4ZWxzLCBpZiBub3QgYWxyZWFkeSBkZWZpbmVkLlxyXG4vLyBTaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIGZvbnQtc2l6ZSBvZiB0aGUgaHRtbCBlbGVtZW50LlxyXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XHJcblxyXG4vLyBXaGV0aGVyIHRvIG91dHB1dCBmYWxsYmFjayB2YWx1ZXMgaW4gcHggd2hlbiBvdXRwdXR0aW5nIHJlbXMuXHJcbiRyZW0td2l0aC1weC1mYWxsYmFjazogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vIENvbnZlcnQgYW55IENTUyA8bGVuZ3RoPiBvciA8cGVyY2VudGFnZT4gdmFsdWUgdG8gYW55IGFub3RoZXIuXHJcbi8vXHJcbi8vIEBwYXJhbSAkbGVuZ3RoXHJcbi8vICAgQSBjc3MgPGxlbmd0aD4gb3IgPHBlcmNlbnRhZ2U+IHZhbHVlXHJcbi8vXHJcbi8vIEBwYXJhbSAkdG8tdW5pdFxyXG4vLyAgIFN0cmluZyBtYXRjaGluZyBhIGNzcyB1bml0IGtleXdvcmQsIGUuZy4gJ2VtJywgJyUnLCBldGMuXHJcbi8vXHJcbi8vIEBwYXJhbSAkZnJvbS1jb250ZXh0XHJcbi8vICAgV2hlbiBjb252ZXJ0aW5nIGZyb20gcmVsYXRpdmUgdW5pdHMsIHRoZSBhYnNvbHV0ZSBsZW5ndGggKGluIHB4KSB0b1xyXG4vLyAgIHdoaWNoICRsZW5ndGggcmVmZXJzIChlLmcuIGZvciAkbGVuZ3RocyBpbiBlbSB1bml0cywgd291bGQgbm9ybWFsbHkgYmUgdGhlXHJcbi8vICAgZm9udC1zaXplIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQpLlxyXG4vL1xyXG4vLyBAcGFyYW0gJHRvLWNvbnRleHRcclxuLy8gICBGb3IgY29udmVydGluZyB0byByZWxhdGl2ZSB1bml0cywgdGhlIGFic29sdXRlIGxlbmd0aCBpbiBweCB0byB3aGljaCB0aGVcclxuLy8gICBvdXRwdXQgdmFsdWUgd2lsbCByZWZlci4gRGVmYXVsdHMgdG8gdGhlIHNhbWUgYXMgJGZyb20tY29udGV4dCwgc2luY2UgaXQgaXNcclxuLy8gICByYXJlbHkgbmVlZGVkLlxyXG5AZnVuY3Rpb24gY29udmVydC1sZW5ndGgoXHJcbiAgJGxlbmd0aCxcclxuICAkdG8tdW5pdCxcclxuICAkZnJvbS1jb250ZXh0OiAkYmFzZS1mb250LXNpemUsXHJcbiAgJHRvLWNvbnRleHQ6ICRmcm9tLWNvbnRleHRcclxuKSB7XHJcblxyXG4gICRmcm9tLXVuaXQ6IHVuaXQoJGxlbmd0aCk7XHJcblxyXG4gIC8vIE9wdGltaXplIGZvciBjYXNlcyB3aGVyZSBgZnJvbWAgYW5kIGB0b2AgdW5pdHMgYXJlIGFjY2lkZW50YWxseSB0aGUgc2FtZS5cclxuICBAaWYgJGZyb20tdW5pdCA9PSAkdG8tdW5pdCB7XHJcbiAgICBAcmV0dXJuICRsZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvLyBDb250ZXh0IHZhbHVlcyBtdXN0IGJlIGluIHB4IHNvIHdlIGNhbiBkZXRlcm1pbmUgYSBjb252ZXJzaW9uIHJhdGlvIGZvclxyXG4gIC8vIHJlbGF0aXZlIHVuaXRzLlxyXG4gIEBpZiB1bml0KCRmcm9tLWNvbnRleHQpICE9ICdweCcge1xyXG4gICAgQHdhcm4gXCJQYXJlbWV0ZXIgJGZyb20tY29udGV4dCBtdXN0IHJlc29sdmUgdG8gYSB2YWx1ZSBpbiBwaXhlbCB1bml0cy5cIjtcclxuICB9XHJcbiAgQGlmIHVuaXQoJHRvLWNvbnRleHQpICE9ICdweCcge1xyXG4gICAgQHdhcm4gXCJQYXJhbWV0ZXIgJHRvLWNvbnRleHQgbXVzdCByZXNvbHZlIHRvIGEgdmFsdWUgaW4gcGl4ZWwgdW5pdHMuXCI7XHJcbiAgfVxyXG5cclxuICAvLyBDb252ZXJ0IGlucHV0IGxlbmd0aCB0byBwaXhlbHNcclxuICAkcHgtbGVuZ3RoOiAkbGVuZ3RoO1xyXG5cclxuICBAaWYgJGZyb20tdW5pdCAhPSAncHgnIHtcclxuICAgIC8vIENvbnZlcnQgcmVsYXRpdmUgdW5pdHMgdXNpbmcgdGhlIGZyb20tY29udGV4dCBwYXJhbWV0ZXIuXHJcbiAgICBAaWYgJGZyb20tdW5pdCA9PSAnZW0nIHtcclxuICAgICAgJHB4LWxlbmd0aDogJGxlbmd0aCAqICRmcm9tLWNvbnRleHQgLyAxZW1cclxuICAgIH0gQGVsc2UgaWYgJGZyb20tdW5pdCA9PSAncmVtJyB7XHJcbiAgICAgICRweC1sZW5ndGg6ICRsZW5ndGggKiAkYmFzZS1mb250LXNpemUgLyAxcmVtXHJcbiAgICB9IEBlbHNlIGlmICRmcm9tLXVuaXQgPT0gJyUnIHtcclxuICAgICAgJHB4LWxlbmd0aDogJGxlbmd0aCAqICRmcm9tLWNvbnRleHQgLyAxMDAlXHJcbiAgICB9IEBlbHNlIGlmICRmcm9tLXVuaXQgPT0gJ2V4JyB7XHJcbiAgICAgICRweC1sZW5ndGg6ICRsZW5ndGggKiAkZnJvbS1jb250ZXh0IC8gMmV4XHJcbiAgICB9XHJcbiAgICAgIC8vIENvbnZlcnQgYWJzb2x1dGUgdW5pdHMgdXNpbmcgU2FzcycgY29udmVyc2lvbiB0YWJsZS5cclxuICAgIEBlbHNlIGlmICRmcm9tLXVuaXQgPT0gJ2luJyAgb3JcclxuICAgICAgICAgICAgICRmcm9tLXVuaXQgPT0gJ21tJyAgb3JcclxuICAgICAgICAgICAgICRmcm9tLXVuaXQgPT0gJ2NtJyAgb3JcclxuICAgICAgICAgICAgICRmcm9tLXVuaXQgPT0gJ3B0JyAgb3JcclxuICAgICAgICAgICAgICRmcm9tLXVuaXQgPT0gJ3BjJyB7XHJcbiAgICAgICRweC1sZW5ndGg6IDBweCArICRsZW5ndGhcclxuICAgIH1cclxuICAgICAgLy8gQ2VydGFpbiB1bml0cyBjYW4ndCBiZSBjb252ZXJ0ZWQuXHJcbiAgICBAZWxzZSBpZiAkZnJvbS11bml0ID09ICdjaCcgIG9yXHJcbiAgICAgICAgICAgICAkZnJvbS11bml0ID09ICd2dycgIG9yXHJcbiAgICAgICAgICAgICAkZnJvbS11bml0ID09ICd2aCcgIG9yXHJcbiAgICAgICAgICAgICAkZnJvbS11bml0ID09ICd2bWluJyB7XHJcbiAgICAgIEB3YXJuIFwiI3skZnJvbS11bml0fSB1bml0cyBjYW4ndCBiZSByZWxpYWJseSBjb252ZXJ0ZWQ7IFJldHVybmluZyBvcmlnaW5hbCB2YWx1ZS5cIjtcclxuICAgICAgQHJldHVybiAkbGVuZ3RoO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEB3YXJuIFwiI3skZnJvbS11bml0fSBpcyBhbiB1bmtub3duIGxlbmd0aCB1bml0LiBSZXR1cm5pbmcgb3JpZ2luYWwgdmFsdWUuXCI7XHJcbiAgICAgIEByZXR1cm4gJGxlbmd0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvbnZlcnQgbGVuZ3RoIGluIHBpeGVscyB0byB0aGUgb3V0cHV0IHVuaXRcclxuICAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aDtcclxuICBAaWYgJHRvLXVuaXQgIT0gJ3B4JyB7XHJcbiAgICAvLyBSZWxhdGl2ZSB1bml0c1xyXG4gICAgQGlmICR0by11bml0ID09ICdlbScge1xyXG4gICAgICAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDFlbSAvICR0by1jb250ZXh0XHJcbiAgICB9IEBlbHNlIGlmICR0by11bml0ID09ICdyZW0nIHtcclxuICAgICAgJG91dHB1dC1sZW5ndGg6ICRweC1sZW5ndGggKiAxcmVtIC8gJGJhc2UtZm9udC1zaXplXHJcbiAgICB9IEBlbHNlIGlmICR0by11bml0ID09ICclJyB7XHJcbiAgICAgICRvdXRwdXQtbGVuZ3RoOiAkcHgtbGVuZ3RoICogMTAwJSAvICR0by1jb250ZXh0XHJcbiAgICB9IEBlbHNlIGlmICR0by11bml0ID09ICdleCcge1xyXG4gICAgICAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDJleCAvICR0by1jb250ZXh0XHJcbiAgICB9XHJcbiAgICAgIC8vIEFic29sdXRlIHVuaXRzXHJcbiAgICBAZWxzZSBpZiAkdG8tdW5pdCA9PSAnaW4nIHtcclxuICAgICAgJG91dHB1dC1sZW5ndGg6IDBpbiArICRweC1sZW5ndGhcclxuICAgIH0gQGVsc2UgaWYgJHRvLXVuaXQgPT0gJ21tJyB7XHJcbiAgICAgICRvdXRwdXQtbGVuZ3RoOiAwbW0gKyAkcHgtbGVuZ3RoXHJcbiAgICB9IEBlbHNlIGlmICR0by11bml0ID09ICdjbScge1xyXG4gICAgICAkb3V0cHV0LWxlbmd0aDogMGNtICsgJHB4LWxlbmd0aFxyXG4gICAgfSBAZWxzZSBpZiAkdG8tdW5pdCA9PSAncHQnIHtcclxuICAgICAgJG91dHB1dC1sZW5ndGg6IDBwdCArICRweC1sZW5ndGhcclxuICAgIH0gQGVsc2UgaWYgJHRvLXVuaXQgPT0gJ3BjJyB7XHJcbiAgICAgICRvdXRwdXQtbGVuZ3RoOiAwcGMgKyAkcHgtbGVuZ3RoXHJcbiAgICB9XHJcbiAgICAgIC8vIE5vbi1jb252ZXJ0aWJsZSB1bml0c1xyXG4gICAgQGVsc2UgaWYgJHRvLXVuaXQgPT0gJ2NoJyAgb3JcclxuICAgICAgICAgICAgICR0by11bml0ID09ICd2dycgIG9yXHJcbiAgICAgICAgICAgICAkdG8tdW5pdCA9PSAndmgnICBvclxyXG4gICAgICAgICAgICAgJHRvLXVuaXQgPT0gJ3ZtaW4nIHtcclxuICAgICAgQHdhcm4gXCIjeyR0by11bml0fSB1bml0cyBjYW4ndCBiZSByZWxpYWJseSBjb252ZXJ0ZWQ7IFJldHVybmluZyBvcmlnaW5hbCB2YWx1ZS5cIjtcclxuICAgICAgQHJldHVybiAkbGVuZ3RoO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEB3YXJuIFwiI3skdG8tdW5pdH0gaXMgYW4gdW5rbm93biBsZW5ndGggdW5pdC4gUmV0dXJuaW5nIG9yaWdpbmFsIHZhbHVlLlwiO1xyXG4gICAgICBAcmV0dXJuICRsZW5ndGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRvdXRwdXQtbGVuZ3RoO1xyXG59XHJcblxyXG4vLyBAcHJpdmF0ZSBHZXQgdGhlIHB4L3JlbSB2ZXJzaW9ucyBvZiBhIHZhbHVlLlxyXG5AZnVuY3Rpb24gcmVtLWZhbGxiYWNrLXZhbHVlcygkdmFsdWUpIHtcclxuICAkX3JldHVybjogKFxyXG4gICAgICAgICAgcHg6ICR2YWx1ZSxcclxuICAgICAgICAgIHJlbTogJHZhbHVlLFxyXG4gICk7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIGFuZCBub3QgdW5pdGxlc3MoJHZhbHVlKSB7XHJcbiAgICBAaWYgdW5pdCgkdmFsdWUpID09IHJlbSB7XHJcbiAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChcclxuICAgICAgICAgICAgICBweDogcm91bmQoY29udmVydC1sZW5ndGgoJHZhbHVlLCBweCkpLFxyXG4gICAgICApKTtcclxuICAgIH0gQGVsc2UgaWYgdW5pdCgkdmFsdWUpID09IHB4IHtcclxuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKFxyXG4gICAgICAgICAgICAgIHB4OiByb3VuZCgkdmFsdWUpLFxyXG4gICAgICAgICAgICAgIHJlbTogY29udmVydC1sZW5ndGgoJHZhbHVlLCByZW0pLFxyXG4gICAgICApKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJF9yZXR1cm47XHJcbn1cclxuXHJcbi8vIEBwcml2YXRlIEdldCB0aGUgcHgvcmVtIHZlcnNpb25zIG9mIGEgbGlzdCAob3IgbmVzdGVkIGxpc3RzKS5cclxuQGZ1bmN0aW9uIGxpc3QtY29udmVydC1yZW1zKCR2YWx1ZSkge1xyXG4gICRfZW1wdHk6IChcclxuICAgICAgICAgIHB4OiAoKSxcclxuICAgICAgICAgIHJlbTogKCksXHJcbiAgKTtcclxuICAkX3JldHVybjogJF9lbXB0eTtcclxuICAkX3NlcDogbnVsbDtcclxuXHJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcclxuICAgICRfc2VwOiBsaXN0LXNlcGFyYXRvcigkdmFsdWUpO1xyXG4gICAgQGVhY2ggJHN1YiBpbiAkdmFsdWUge1xyXG4gICAgICAkX3RoaXM6IGxpc3QtY29udmVydC1yZW1zKCRzdWIpO1xyXG4gICAgICAkX3JldHVybjogKFxyXG4gICAgICAgICAgICAgIHB4OiBhcHBlbmQobWFwLWdldCgkX3JldHVybiwgcHgpLCBtYXAtZ2V0KCRfdGhpcywgcHgpLCAkX3NlcCksXHJcbiAgICAgICAgICAgICAgcmVtOiBhcHBlbmQobWFwLWdldCgkX3JldHVybiwgcmVtKSwgbWFwLWdldCgkX3RoaXMsIHJlbSksICRfc2VwKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgICRfdGhpczogcmVtLWZhbGxiYWNrLXZhbHVlcygkdmFsdWUpO1xyXG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgJF90aGlzKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJF9yZXR1cm47XHJcbn1cclxuXHJcbi8vIE91dHB1dCBhIGdpdmVuIHN0eWxlIHJ1bGUgY29udGFpbmluZyByZW0gdmFsdWVzIGFsb25nIHdpdGggYW4gKG9wdGlvbmFsKVxyXG4vLyBmYWxsYmFjayBydWxlIGZvciBvbGRlciBicm93c2VycyAod2l0aCByZW0gdmFsdWVzIGNvbnZlcnRlZCB0byBweCkuXHJcbi8vXHJcbi8vIEBwYXJhbSAkcHJvcGVydHlcclxuLy8gICBUaGUgY3NzIHByb3BlcnR5IG5hbWUuXHJcbi8vXHJcbi8vIEBwYXJhbSAkdmFsdWVzXHJcbi8vICAgVGhlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIGZvciB0aGUgcHJvcGVydHkuXHJcbi8vXHJcbi8vIEBwYXJhbSAkdXNlLXB4LWZhbGxiYWNrXHJcbi8vICAgWyB0cnVlIHwgZmFsc2UgXVxyXG4vL1xyXG5AbWl4aW4gcmVtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHVzZS1weC1mYWxsYmFjazogJHJlbS13aXRoLXB4LWZhbGxiYWNrKSB7XHJcblxyXG4gIC8vIGdldCBjb252ZXJ0ZWQgdmFsdWVzLlxyXG4gICR2YWx1ZXM6IGxpc3QtY29udmVydC1yZW1zKCR2YWx1ZXMpO1xyXG4gICRweC12YWx1ZXM6IG1hcC1nZXQoJHZhbHVlcywgcHgpO1xyXG4gICR2YWx1ZXM6IG1hcC1nZXQoJHZhbHVlcywgcmVtKTtcclxuXHJcbiAgLy8gVXNlIHBpeGVsIGZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvbid0IHVuZGVyc3RhbmQgcmVtIHVuaXRzLlxyXG4gIEBpZiAkdXNlLXB4LWZhbGxiYWNrIGFuZCAkcHgtdmFsdWVzICE9ICR2YWx1ZXMge1xyXG4gICAgI3skcHJvcGVydHl9OiAkcHgtdmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgLy8gVXNlIHJlbSB2YWx1ZXMgZm9yIGV2ZXJ5b25lIGVsc2UgKG92ZXJyaWRlcyBwaXhlbCB2YWx1ZXMpLlxyXG4gICN7JHByb3BlcnR5fTogJHZhbHVlcztcclxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcclxuICAgICAgICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcclxuICAgICAgICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxyXG4gICAgICAgICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcclxuICAgICAgICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcclxuICAgICAgICAndG8gZW1zJzogZmFsc2UsXHJcbiAgICAgICAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXHJcbiAgICAgICAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcclxuICAgICAgICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXHJcbiAgICAgICAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcclxuICAgICAgICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXHJcbik7XHJcblxyXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gSW1wb3J0c1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcclxuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcclxuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcclxuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcclxuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XHJcblxyXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xyXG5cclxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gQnJlYWtwb2ludCBNaXhpblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xyXG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xyXG5cclxuICAvLyBSZXNldCBjb250ZXh0c1xyXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xyXG5cclxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcclxuXHJcbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XHJcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcclxuXHJcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcclxuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xyXG5cclxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxyXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xyXG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcclxuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XHJcbiAgfVxyXG5cclxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXHJcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcclxuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XHJcblxyXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcclxuICAgICRwcmludDogZmFsc2U7XHJcblxyXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcclxuICAgICAgJHByaW50OiB0cnVlO1xyXG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcclxuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xyXG4gICAgICAgICRwcmludDogdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XHJcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XHJcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XHJcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcclxuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XHJcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XHJcblxyXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xyXG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcclxuICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xyXG59XHJcblxyXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBIYXMgU2V0dGluZ1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XHJcbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50LCAkc2V0dGluZykge1xyXG4gICAgQHJldHVybiB0cnVlO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBHZXQgU2V0dGluZ3NcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LWdldCgkc2V0dGluZykge1xyXG4gIEBpZiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50LCAkc2V0dGluZyk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJyZWFrcG9pbnQtU2V0dGluZ3MsICRzZXR0aW5nKTtcclxuICB9XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBTZXQgU2V0dGluZ3NcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XHJcbiAgQGlmIChzdHItaW5kZXgoJHNldHRpbmcsICctJykgb3Igc3RyLWluZGV4KCRzZXR0aW5nLCAnXycpKSBhbmQgc3RyLWluZGV4KCRzZXR0aW5nLCAnICcpID09IG51bGwge1xyXG4gICAgQHdhcm4gXCJXb3JkcyBpbiBCcmVha3BvaW50IHNldHRpbmdzIHNob3VsZCBiZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLCBub3QgZGFzaGVzIG9yIHVuZGVyc2NvcmVzLiBQbGVhc2UgcmVwbGFjZSBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzIGJldHdlZW4gd29yZHMgd2l0aCBzcGFjZXMuIFNldHRpbmdzIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgdW50aWwgY2hhbmdlZC5cIjtcclxuICB9XHJcbiAgJGJyZWFrcG9pbnQ6IG1hcC1tZXJnZSgkYnJlYWtwb2ludCwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuQG1peGluIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcclxuICAkYnJlYWtwb2ludC1jaGFuZ2U6IGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xyXG59XHJcblxyXG5AbWl4aW4gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xyXG59XHJcblxyXG5AbWl4aW4gYmtwdC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xyXG59XHJcblxyXG5AbWl4aW4gYmtwdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gUmVtb3ZlIFNldHRpbmdcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xyXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAxIHtcclxuICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xyXG4gICAgJGJyZWFrcG9pbnQ6IG1hcC1yZW1vdmUoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSAhZ2xvYmFsO1xyXG4gIH1cclxuICBAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbkBtaXhpbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xyXG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XHJcbn1cclxuXHJcbkBtaXhpbiBia3B0LXJlc2V0KCRzZXR0aW5ncy4uLikge1xyXG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XHJcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCk7XHJcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxyXG4vLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHlvdSBhcmUgaW5zaWRlIGEgQnJlYWtwb2ludCBxdWVyeVxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XHJcbiAgQGlmIGxlbmd0aCgkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50KSB7XHJcbiAgICBAcmV0dXJuIHRydWU7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcclxuLy8gJGZlYXR1cmU6IElucHV0IGZlYXR1cmUgdG8gZ2V0IGl0J3MgY3VycmVudCBNUSBjb250ZXh0LiBSZXR1cm5zIGZhbHNlIGlmIG5vIGNvbnRleHRcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XHJcbiAgQGlmIG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XHJcbiAgICAkZ2V0OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcclxuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxyXG4gICAgQGlmICRmZWF0dXJlID09ICduby1xdWVyeScge1xyXG4gICAgICBAaWYgdHlwZS1vZigkZ2V0KSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ2V0KSA+IDEgYW5kIG50aCgkZ2V0LCAxKSA9PSBmYWxzZSB7XHJcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEByZXR1cm4gJGdldDtcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkgYW5kICRmZWF0dXJlID09ICdtZWRpYScge1xyXG4gICAgICBAcmV0dXJuIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHNldCBjb250ZXh0XHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcclxuICBAaWYgJHZhbHVlID09ICdtb25vY2hyb21lJyB7XHJcbiAgICAkZmVhdHVyZTogJ21vbm9jaHJvbWUnO1xyXG4gIH1cclxuXHJcbiAgJGN1cnJlbnQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xyXG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcclxuICAgIEB3YXJuIFwiWW91IGhhdmUgYWxyZWFkeSBxdWVyaWVkIGFnYWluc3QgYCN7JGZlYXR1cmV9YC4gVW5leHBlY3RlZCB0aGluZ3MgbWF5IGhhcHBlbiBpZiB5b3UgcXVlcnkgYWdhaW5zdCB0aGUgc2FtZSBmZWF0dXJlIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIGBhbmRgIHF1ZXJ5LiBCcmVha3BvaW50IGlzIG92ZXJ3cml0aW5nIHRoZSBjdXJyZW50IGNvbnRleHQgd2l0aCBgI3skdmFsdWV9YFwiO1xyXG4gIH1cclxuXHJcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xyXG4gICAgJHYtaG9sZGVyOiAoKTtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xyXG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XHJcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcclxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkdi1ob2xkZXI6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xyXG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XHJcbiAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IC0gMSB7XHJcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcclxuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xyXG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gcmVzZXQgY29udGV4dFxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQG1peGluIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cyB7XHJcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcclxuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XHJcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gQ29udmVydHMgdGhlIGlucHV0IHZhbHVlIHRvIEJhc2UgRU1zXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSkge1xyXG4gICR2YWx1ZS11bml0OiB1bml0KCR2YWx1ZSk7XHJcblxyXG4gIC8vIFdpbGwgY29udmVydCByZWxhdGl2ZSBFTXMgaW50byByb290IEVNcy5cclxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykgYW5kIHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpID09ICdudW1iZXInIGFuZCAkdmFsdWUtdW5pdCA9PSAnZW0nIHtcclxuICAgICRiYXNlLXVuaXQ6IHVuaXQoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpO1xyXG5cclxuICAgIEBpZiAkYmFzZS11bml0ID09ICdweCcgb3IgJGJhc2UtdW5pdCA9PSAnJScgb3IgJGJhc2UtdW5pdCA9PSAnZW0nIG9yICRiYXNlLXVuaXQgPT0gJ3B0JyB7XHJcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpICogMWVtO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEB3YXJuICcje2JyZWFrcG9pbnQtZ2V0KFxcJ2Jhc2UgZm9udCBzaXplXFwnKX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpO1xyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIHtcclxuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xyXG5cclxuICBAaWYgJHVuaXQgPT0gJ3B4JyB7XHJcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XHJcbiAgfSBAZWxzZSBpZiAkdW5pdCA9PSAnJScge1xyXG4gICAgQHJldHVybiAkdmFsdWUgLyAxMDAlICogMWVtO1xyXG4gIH0gQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XHJcbiAgICBAcmV0dXJuICR2YWx1ZTtcclxuICB9IEBlbHNlIGlmICR1bml0ID09ICdwdCcge1xyXG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiAkdmFsdWU7XHJcbiAgICAvLyAgICBAd2FybiAnRXZlcnl0aGluZyBpcyB0ZXJyaWJsZSEgV2hhdCBoYXZlIHlvdSBkb25lPyEnO1xyXG4gIH1cclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIG1pbi9tYXggcGFpclxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcclxuJ2NvbG9yLWluZGV4JyxcclxuJ2FzcGVjdC1yYXRpbycsXHJcbidkZXZpY2UtYXNwZWN0LXJhdGlvJyxcclxuJ2RldmljZS1oZWlnaHQnLFxyXG4nZGV2aWNlLXdpZHRoJyxcclxuJ2hlaWdodCcsXHJcbidtb25vY2hyb21lJyxcclxuJ3Jlc29sdXRpb24nLFxyXG4nd2lkdGgnO1xyXG5cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluLW1heCgkZmVhdHVyZSkge1xyXG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xyXG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4kYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXM6ICdvcmllbnRhdGlvbicsXHJcbidzY2FuJyxcclxuJ2NvbG9yJyxcclxuJ2FzcGVjdC1yYXRpbycsXHJcbidkZXZpY2UtYXNwZWN0LXJhdGlvJyxcclxuJ3BvaW50ZXInLFxyXG4nbHVtaW5vc2l0eSc7XHJcblxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZlYXR1cmUpIHtcclxuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xyXG4gICAgQGlmIGJyZWFrcG9pbnQtbWluLW1heCgkaXRlbSkge1xyXG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21pbi0jeyRpdGVtfScgb3IgJGZlYXR1cmUgPT0gJ21heC0jeyRpdGVtfScge1xyXG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XHJcbiAgICAgIEByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiRicmVha3BvaW50LW1lZGlhLXR5cGVzOiAnYWxsJyxcclxuJ2JyYWlsbGUnLFxyXG4nZW1ib3NzZWQnLFxyXG4naGFuZGhlbGQnLFxyXG4ncHJpbnQnLFxyXG4ncHJvamVjdGlvbicsXHJcbidzY3JlZW4nLFxyXG4nc3BlZWNoJyxcclxuJ3R0eScsXHJcbid0dic7XHJcblxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkge1xyXG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XHJcbiAgICBAaWYgKCRmZWF0dXJlID09ICRtZWRpYSkgb3IgKCRmZWF0dXJlID09ICdub3QgI3skbWVkaWF9Jykgb3IgKCRmZWF0dXJlID09ICdvbmx5ICN7JG1lZGlhfScpIHtcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gc3RhbmQgYWxvbmVcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXHJcbidjb2xvci1pbmRleCcsXHJcbidncmlkJyxcclxuJ21vbm9jaHJvbWUnO1xyXG5cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkge1xyXG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xyXG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSB7XHJcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XHJcblxyXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xyXG4gICAgJHJlc29sdXRpb25zOiBhcHBlbmQoJHJlc29sdXRpb25zLCAncmVzb2x1dGlvbicpO1xyXG4gIH1cclxuXHJcbiAgQGVhY2ggJHJlc28gaW4gJHJlc29sdXRpb25zIHtcclxuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XHJcbiAgICAgIEByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gZmFsc2U7XHJcbn1cclxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEltcG9ydCBQYXJzZXIgUGllY2VzXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AaW1wb3J0IFwicGFyc2Vycy9xdWVyeVwiO1xyXG5AaW1wb3J0IFwicGFyc2Vycy9zaW5nbGVcIjtcclxuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XHJcbkBpbXBvcnQgXCJwYXJzZXJzL3RyaXBsZVwiO1xyXG5AaW1wb3J0IFwicGFyc2Vycy9yZXNvbHV0aW9uXCI7XHJcblxyXG4kTWVtby1FeGlzdHM6IGZ1bmN0aW9uLWV4aXN0cyhtZW1vLWdldCkgYW5kIGZ1bmN0aW9uLWV4aXN0cyhtZW1vLXNldCk7XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gQnJlYWtwb2ludCBGdW5jdGlvblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcclxuICAkcnVuOiB0cnVlO1xyXG4gICRyZXR1cm46ICgpO1xyXG5cclxuICAvLyBHcmFiIHRoZSBNZW1vIE91dHB1dCBpZiBNZW1vaXphdGlvbiBjYW4gYmUgYSB0aGluZ1xyXG4gIEBpZiAkTWVtby1FeGlzdHMge1xyXG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcclxuXHJcbiAgICBAaWYgJHJldHVybiAhPSBudWxsIHtcclxuICAgICAgJHJ1bjogZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgbm90ICRNZW1vLUV4aXN0cyBvciAkcnVuIHtcclxuICAgIC8vIEludGVybmFsIFZhcmlhYmxlc1xyXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XHJcbiAgICAkcXVlcnktZmFsbGJhY2s6IGZhbHNlO1xyXG4gICAgJHJldHVybjogKCk7XHJcblxyXG4gICAgLy8gUmVzZXJ2ZSBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcclxuICAgICRob2xkZXItY29udGV4dDogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjtcclxuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XHJcblxyXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XHJcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xyXG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xyXG5cclxuICAgIC8vIFRlc3QgdG8gc2VlIGlmIGl0J3MgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdFxyXG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xyXG5cclxuICAgIEBpZiAoJG9yLWxpc3QgPT0gZmFsc2UgYW5kIGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gZmFsc2UpIHtcclxuICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xyXG5cclxuICAgICAgJGxhc3Q6IG50aCgkcXVlcnksICRsZW5ndGgpO1xyXG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xyXG5cclxuICAgICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIHtcclxuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmIChicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IHRydWUpIHtcclxuICAgICAgICAkbXE6ICgpO1xyXG5cclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xyXG4gICAgICAgICAgJG1xOiBhcHBlbmQoJG1xLCBudGgoJHF1ZXJ5LCAkaSksIGNvbW1hKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJG1xKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogJyc7XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcclxuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJHJldHVybjogKCdxdWVyeSc6ICRxdWVyeS1zdHJpbmcsXHJcbiAgICAgICAgICAgICdmYWxsYmFjayc6ICRxdWVyeS1mYWxsYmFjayxcclxuICAgICAgICAgICAgJ2NvbnRleHQgaG9sZGVyJzogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcixcclxuICAgICAgICAgICAgJ3F1ZXJ5IGNvdW50JzogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudFxyXG4gICAgKTtcclxuICAgIEBpZiBsZW5ndGgoJGNvbnRleHRzKSA+IDAgYW5kIG50aCgkY29udGV4dHMsIDEpICE9IGZhbHNlIHtcclxuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XHJcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcclxuICAgICAgfVxyXG4gICAgICAkY29udGV4dC1tYXA6ICgpO1xyXG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xyXG4gICAgICAgICRjb250ZXh0LW1hcDogbWFwLW1lcmdlKCRjb250ZXh0LW1hcCwgKCRjb250ZXh0OiBicmVha3BvaW50LWdldC1jb250ZXh0KCRjb250ZXh0KSkpO1xyXG4gICAgICB9XHJcbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XHJcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xyXG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xyXG5cclxuICAgIEBpZiAkTWVtby1FeGlzdHMge1xyXG4gICAgICAkaG9sZGVyOiBtZW1vLXNldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMsICRyZXR1cm4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkcmV0dXJuO1xyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gR2VuZXJhbCBCcmVha3BvaW50IFBhcnNlclxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XHJcbiAgLy8gSW5jcmVhc2UgbnVtYmVyIG9mICdhbmQnIHF1ZXJpZXNcclxuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50ICsgMSAhZ2xvYmFsO1xyXG5cclxuICAvLyBTZXQgdXAgTWVkaWEgVHlwZVxyXG4gICRxdWVyeS1wcmludDogJyc7XHJcblxyXG4gICRmb3JjZS1hbGw6ICgoYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykgPT0gdHJ1ZSkgYW5kIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpID09ICdhbGwnKSk7XHJcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xyXG4gIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSAhPSAnYWxsJykge1xyXG4gICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXHJcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XHJcbiAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xyXG5cclxuICAkcXVlcnktaG9sZGVyOiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSk7XHJcblxyXG4gIC8vIExvb3Agb3ZlciBlYWNoIHBhcnNlZCBvdXQgcXVlcnkgYW5kIHdyaXRlIGl0IHRvICRxdWVyeS1wcmludFxyXG4gICRmaXJzdDogdHJ1ZTtcclxuXHJcbiAgQGVhY2ggJGZlYXR1cmUgaW4gJHF1ZXJ5LWhvbGRlciB7XHJcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xyXG5cclxuICAgIC8vIFBhcnNlIGEgc2luZ2xlIGZlYXR1cmVcclxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIC8vIEZlYXR1cmUgaXMgY3VycmVudGx5IGEgbGlzdCwgZ3JhYiB0aGUgYWN0dWFsIHZhbHVlXHJcbiAgICAgICRmZWF0dXJlOiBudGgoJGZlYXR1cmUsIDEpO1xyXG5cclxuICAgICAgLy8gTWVkaWEgVHlwZSBtdXN0IGJ5IGNvbnZlbnRpb24gYmUgdGhlIGZpcnN0IGl0ZW0sIHNvIGl0J3Mgc2FmZSB0byBmbGF0IG92ZXJyaWRlICRxdWVyeS1wcmludCwgd2hpY2ggcmlnaHQgbm93IHNob3VsZCBvbmx5IGJlIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGVcclxuICAgICAgQGlmIChicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSkge1xyXG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcclxuICAgICAgICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxyXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAkZmVhdHVyZTtcclxuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XHJcblxyXG4gICAgICAgICAgLy8gU2V0IENvbnRleHRcclxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcclxuICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XHJcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgICAvLyBQYXJzZSBhIGRvdWJsZSBmZWF0dXJlXHJcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XHJcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xyXG4gICAgICAgICRxdWVyeS1yZXNvbHV0aW9uOiAkZmVhdHVyZTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHBhcnNlZDogbnVsbDtcclxuICAgICAgICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLFxyXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxyXG4gICAgICAgIC8vIHRoZW4gd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXHJcbiAgICAgICAgJGFscGhhOiBudGgoJGZlYXR1cmUsIDEpO1xyXG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xyXG4gICAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGFscGhhKSBvciBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGJldGEpIHtcclxuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRhbHBoYSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xyXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xyXG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcclxuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRiZXRhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XHJcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xyXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xyXG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxyXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xyXG4gICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xyXG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XHJcbiAgICAgICRmaXJzdDogZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xyXG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xyXG4gIH1cclxuXHJcbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZmVhdHVyZSB0aGF0J3MgYmVlbiBkZXRlY3RlZCBzbyBmYXIgYW5kIGFwcGVuZCAnZmFsc2UnIHRvIHRoZSB0aGUgdmFsdWUgbGlzdCB0byBpbmNyZW1lbnQgdGhlaXIgY291bnRlcnNcclxuICBAZWFjaCAkZiwgJHYgaW4gJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciB7XHJcbiAgICAkdi1ob2xkZXI6ICR2O1xyXG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XHJcbiAgICBAaWYgbGVuZ3RoKCR2LWhvbGRlcikgPCAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcclxuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XHJcbiAgICAgICAgQGlmICRmID09ICdtZWRpYScge1xyXG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZjogJHYtaG9sZGVyKSkgIWdsb2JhbDtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xyXG59XHJcbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSkge1xyXG4gIC8vIFBhcnNlIGZlYXR1cmVzIG91dCBvZiBhbiBpbmRpdmlkdWFsIHF1ZXJ5XHJcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcclxuICAkcXVlcnktaG9sZGVyOiAoKTtcclxuICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcclxuXHJcbiAgQGlmICRsZW5ndGggPT0gMiB7XHJcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgYSBzdHJpbmcvbnVtYmVyLCBudW1iZXIvc3RyaW5nLCBjaGVjayB0byBzZWUgaWYgaXQncyBhIHZhbGlkIHN0cmluZy9udW1iZXIgcGFpciBvciB0d28gc2luZ2xlc1xyXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcclxuXHJcbiAgICAgICRudW1iZXI6ICcnO1xyXG4gICAgICAkdmFsdWU6ICcnO1xyXG5cclxuICAgICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIHtcclxuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcclxuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDEpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAxKTtcclxuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgY2hlY2sgdG8gc2VlIGlmIHRoZSBudW1iZXIgcGFzc2VkIGluIGlzIGEgdmFsaWQgaW5wdXQgZm9yIHNhaWQgc2luZ2xlIHZhbHVlLiBGb3J0dW5hdGVseSwgYWxsIGN1cnJlbnQgc2luZ2xlLXZhbHVlIG9wdGlvbnMgb25seSBhY2NlcHQgdW5pdGxlc3MgbnVtYmVycywgc28gdGhpcyBjaGVjayBpcyBlYXN5LlxyXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xyXG4gICAgICAgIEBpZiB1bml0bGVzcygkbnVtYmVyKSB7XHJcbiAgICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcclxuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcclxuICAgICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gSWYgdGhlIHN0cmluZyBpcyBhIG1lZGlhIHR5cGUsIHNwbGl0IHRoZSBxdWVyeVxyXG4gICAgICBAaWYgYnJlYWtwb2ludC1pcy1tZWRpYSgkdmFsdWUpIHtcclxuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xyXG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAyKSk7XHJcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xyXG4gICAgICB9XHJcbiAgICAgICAgLy8gSWYgaXQncyBub3QgYSBzaW5nbGUgZmVhdHVyZSwgd2UncmUganVzdCBnb2luZyB0byBhc3N1bWUgaXQncyBhIHByb3BlciBzdHJpbmcvdmFsdWUgcGFpciwgYW5kIHJvbGwgd2l0aCBpdC5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xyXG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcclxuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICAgIC8vIElmIHRoZXkncmUgYm90aCBudW1iZXJzLCB3ZSBhc3N1bWUgaXQncyBhIGRvdWJsZSBhbmQgcm9sbCB3aXRoIHRoYXRcclxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcclxuICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XHJcbiAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcclxuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xyXG4gICAgfVxyXG4gICAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXHJcbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XHJcbiAgICAgIEBpZiBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkge1xyXG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xyXG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcclxuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRsZW5ndGggPT0gMyB7XHJcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcclxuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAzKSkgIT0gJ2xpc3QnIHtcclxuICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgaXRlbXMgYXJlIHNpbmdsZSBzdHJpbmcgdmFsdWVzIGFuZCBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIG1lZGlhIHZhbHVlcywgd2UncmUgZ29vZC5cclxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcclxuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcclxuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkZmVhdHVyZS1ob2xkZXIsIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XHJcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xyXG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcclxuICAgICAgfVxyXG4gICAgICAgIC8vIGxldCdzIGNoZWNrIHRvIHNlZSBpZiB0aGUgZmlyc3QgaXRlbSBpcyBhIG1lZGlhIHR5cGVcclxuICAgICAgQGVsc2UgaWYgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkge1xyXG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XHJcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMiksIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XHJcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlcik7XHJcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGl0ZW0sIG9yIGlmIGl0J3Mgbm90IGEgc3BlY2lhbCBjYXNlIGRvdWJsZSBvciB0cmlwbGUsIHdlIGNhbiBzaW1wbHkgcmV0dXJuIHRoZSBxdWVyeS5cclxuICBAcmV0dXJuICRxdWVyeTtcclxufVxyXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gSW1wb3J0IFBpZWNlc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGltcG9ydCBcInNpbmdsZS9kZWZhdWx0XCI7XHJcblxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XHJcbiAgJHBhcnNlZDogJyc7XHJcbiAgJGxlYWRlcjogJyc7XHJcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xyXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcclxuICAgICRsZWFkZXI6ICdhbmQgJztcclxuICB9XHJcblxyXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XHJcbiAgQGlmIChicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpKSB7XHJcbiAgICAkcGFyc2VkOiAkZmVhdHVyZTtcclxuICAgIC8vIFNldCBDb250ZXh0XHJcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJGZlYXR1cmUpO1xyXG4gIH1cclxuICAgIC8vIElmIGl0J3Mgbm90IGEgc3RhbmQgYWxvbmUgZmVhdHVyZSwgd2UgcGFzcyBpdCBvZmYgdG8gdGhlIGRlZmF1bHQgaGFuZGxlci5cclxuICBAZWxzZSB7XHJcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcclxufVxyXG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKSB7XHJcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKTtcclxuXHJcbiAgLy8gU2V0IENvbnRleHRcclxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xyXG5cclxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSBhbmQgKHR5cGUtb2YoJGZlYXR1cmUpID09ICdudW1iZXInKSB7XHJcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3skZmVhdHVyZX0nO1xyXG4gIH1cclxufVxyXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gSW1wb3J0IFBpZWNlc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0LXBhaXJcIjtcclxuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XHJcbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdFwiO1xyXG5cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xyXG4gICRwYXJzZWQ6ICcnO1xyXG4gICRsZWFkZXI6ICcnO1xyXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcclxuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XHJcbiAgICAkbGVhZGVyOiAnYW5kICc7XHJcbiAgfVxyXG5cclxuICAkZmlyc3Q6IG50aCgkZmVhdHVyZSwgMSk7XHJcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcclxuXHJcbiAgLy8gSWYgd2UndmUgZ290IHR3byBudW1iZXJzLCB3ZSBrbm93IHdlIG5lZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHBhaXIgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbWVkaWEgcXVlcmllcyB0aGF0IGhhcyBhIG1lZGlhIGZlYXR1cmUgdGhhdCBpcyBhIG51bWJlclxyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xyXG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKTtcclxuICB9XHJcbiAgICAvLyBJZiB0aGV5IGFyZSBib3RoIHN0cmluZ3MsIHdlIHNlbmQgaXQgdGhyb3VnaCB0aGUgc3RyaW5nIHBhcnNlclxyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnc3RyaW5nJyB7XHJcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcclxuICB9XHJcbiAgICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcclxuICBAZWxzZSB7XHJcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpIHtcclxuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgcGFpcicpO1xyXG4gICRtaW46ICcnO1xyXG4gICRtYXg6ICcnO1xyXG5cclxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcclxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcclxuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcclxuXHJcbiAgLy8gU2V0IENvbnRleHRcclxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZGVmYXVsdH0sICRtaW4pO1xyXG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XHJcblxyXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxyXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcclxuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcclxuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJyhtaW4tI3skZGVmYXVsdH06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGRlZmF1bHR9OiAjeyRtYXh9KSc7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpIHtcclxuICAkZmVhdHVyZTogJyc7XHJcbiAgJHZhbHVlOiAnJztcclxuXHJcbiAgLy8gVGVzdCB0byBzZWUgd2hpY2ggaXMgdGhlIGZlYXR1cmUgYW5kIHdoaWNoIGlzIHRoZSB2YWx1ZVxyXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XHJcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xyXG4gICAgJHZhbHVlOiAkc2Vjb25kO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XHJcbiAgICAkdmFsdWU6ICRmaXJzdDtcclxuICB9XHJcblxyXG4gIC8vIFNldCBDb250ZXh0XHJcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XHJcblxyXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSc7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKSB7XHJcbiAgJGZlYXR1cmU6ICcnO1xyXG4gICR2YWx1ZTogJyc7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycge1xyXG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcclxuICAgICR2YWx1ZTogJHNlY29uZDtcclxuICB9IEBlbHNlIHtcclxuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xyXG4gICAgJHZhbHVlOiAkZmlyc3Q7XHJcbiAgfVxyXG5cclxuICAvLyBTZXQgQ29udGV4dFxyXG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xyXG5cclxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XHJcbiAgICAkdmFsdWU6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJ1xyXG59XHJcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBJbXBvcnQgUGllY2VzXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AaW1wb3J0IFwidHJpcGxlL2RlZmF1bHRcIjtcclxuXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcclxuICAkcGFyc2VkOiAnJztcclxuICAkbGVhZGVyOiAnJztcclxuXHJcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xyXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcclxuICAgICRsZWFkZXI6ICdhbmQgJztcclxuICB9XHJcblxyXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xyXG4gICRzdHJpbmc6IG51bGw7XHJcbiAgJG51bWJlcnM6IG51bGw7XHJcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XHJcbiAgICBAaWYgdHlwZS1vZigkdmFsKSA9PSBzdHJpbmcge1xyXG4gICAgICAkc3RyaW5nOiAkdmFsO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xyXG4gICAgICAgICRudW1iZXJzOiAkdmFsO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkbnVtYmVyczogYXBwZW5kKCRudW1iZXJzLCAkdmFsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcclxuXHJcbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcclxuXHJcbn1cclxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJGZlYXR1cmUsICRmaXJzdCwgJHNlY29uZCkge1xyXG5cclxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcclxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcclxuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcclxuXHJcbiAgLy8gU2V0IENvbnRleHRcclxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xyXG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRmZWF0dXJlfSwgJG1heCk7XHJcblxyXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxyXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcclxuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcclxuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XHJcbn1cclxuIiwiQGltcG9ydCBcInJlc29sdXRpb24vcmVzb2x1dGlvblwiO1xyXG5cclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xyXG4gICRsZWFkZXI6ICcnO1xyXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcclxuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XHJcbiAgICAkbGVhZGVyOiAnYW5kICc7XHJcbiAgfVxyXG5cclxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIGFuZCAkcXVlcnktcmVzb2x1dGlvbiB7XHJcbiAgICAkcmVzb2x1dGlvbnM6IGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcXVlcnktcmVzb2x1dGlvbik7XHJcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcclxuICAgICRxdWVyeS1ob2xkZXI6ICcnO1xyXG5cclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XHJcbiAgICAgICRxdWVyeTogJyN7JHF1ZXJ5LXByaW50fSAjeyRsZWFkZXJ9I3tudGgoJHJlc29sdXRpb25zLCAkaSl9JztcclxuICAgICAgQGlmICRpID09IDEge1xyXG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXHJcbiAgICBAcmV0dXJuICRxdWVyeS1wcmludDtcclxuICB9XHJcbn1cclxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcmVzb2x1dGlvbikge1xyXG4gICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbik7XHJcblxyXG4gICRvdXRwdXQ6ICgpO1xyXG5cclxuICBAaWYgJGxlbmd0aCA9PSAyIHtcclxuICAgICRmZWF0dXJlOiAnJztcclxuICAgICR2YWx1ZTogJyc7XHJcblxyXG4gICAgLy8gRmluZCB3aGljaCBpcyBudW1iZXJcclxuICAgIEBpZiB0eXBlLW9mKG50aCgkcmVzb2x1dGlvbiwgMSkpID09ICdudW1iZXInIHtcclxuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAyKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgbWluL21heC9zdGFuZGFyZFxyXG4gICAgQGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWluLXJlc29sdXRpb24nKSB7XHJcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XHJcbiAgICB9IEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XHJcbiAgICAgICRmZWF0dXJlOiAnbWF4LSc7XHJcbiAgICB9XHJcblxyXG4gICAgJHN0YW5kYXJkOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWV9KSc7XHJcblxyXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxyXG4gICAgQGlmIHVuaXQoJHZhbHVlKSAhPSAnZHBweCcge1xyXG4gICAgICAkYmFzZTogOTZkcGk7XHJcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcclxuICAgICAgICAkYmFzZTogMjQzLjg0ZHBjbTtcclxuICAgICAgfVxyXG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xyXG4gICAgICAkd2Via2l0OiAnJztcclxuICAgICAgJG1vejogJyc7XHJcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcclxuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xyXG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XHJcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcclxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcclxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkd2Via2l0OiAnJztcclxuICAgICAgJG1vejogJyc7XHJcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcclxuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xyXG4gICAgICAkZmFsbGJhY2s6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZSAvIDFkcHB4ICogOTZkcGl9KSc7XHJcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcclxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xyXG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xyXG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xyXG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkb3V0cHV0O1xyXG59XHJcbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW5vLXF1ZXJ5KCRxdWVyeSkge1xyXG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gJ2xpc3QnIHtcclxuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcclxuXHJcbiAgICBAaWYgdHlwZS1vZigka2V5d29yZCkgPT0gJ3N0cmluZycgYW5kICgka2V5d29yZCA9PSAnbm8tcXVlcnknIG9yICRrZXl3b3JkID09ICdubyBxdWVyeScgb3IgJGtleXdvcmQgPT0gJ2ZhbGxiYWNrJykge1xyXG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gRGVmYXVsdCB0aGUgQnJlYWtwb2ludHMgdmFyaWFibGVcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiRicmVha3BvaW50czogKCkgIWRlZmF1bHQ7XHJcbiRCUkVBS1BPSU5UUzogKCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gUmVzcG9uZC10byBBUEkgTWl4aW5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XHJcbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID4gMCBhbmQgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XHJcbiAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbWVzcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBhZGQgYnJlYWtwb2ludHMgZm9yIHJlc3BvbmQtdG8uIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludCgpYCB0byBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoKWAuIFRoZSBgYWRkLWJyZWFrcG9pbnQoKWAgZnVuY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCI7XHJcbiAgICAkQlJFQUtQT0lOVFM6ICRicmVha3BvaW50cyAhZ2xvYmFsO1xyXG4gICAgJGJyZWFrcG9pbnRzOiAoKSAhZ2xvYmFsO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJEJSRUFLUE9JTlRTKSAhPSAnbWFwJyB7XHJcbiAgICAvLyBKdXN0IGluIGNhc2Ugc29tZW9uZSB3cml0ZXMgZ2liYmVyaXNoIHRvIHRoZSAkYnJlYWtwb2ludHMgdmFyaWFibGUuXHJcbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3NudWd1Zy9yZXNwb25kLXRvI2FwaSBpZiB5b3UnZCBsaWtlIGEgcmVtaW5kZXIgb24gaG93IHRvIHVzZSBSZXNwb25kLXRvXCI7XHJcbiAgICBAY29udGVudDtcclxuICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcclxuICAgIEB3YXJuIFwiYCN7JGNvbnRleHR9YCBpc24ndCBhIGRlZmluZWQgYnJlYWtwb2ludCEgUGxlYXNlIGFkZCBpdCB1c2luZyBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludChgI3skY29udGV4dH1gLCAkdmFsdWUpO2BcIjtcclxuICAgIEBjb250ZW50O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gXCJZb3UgaGF2ZW4ndCBjcmVhdGVkIGFueSBicmVha3BvaW50cyB5ZXQhIE1ha2Ugc29tZSBhbHJlYWR5ISBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3NudWd1Zy9yZXNwb25kLXRvI2FwaSBpZiB5b3UnZCBsaWtlIGEgcmVtaW5kZXIgb24gaG93IHRvIHVzZSBSZXNwb25kLXRvXCI7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBBZGQgQnJlYWtwb2ludCB0byBCcmVha3BvaW50c1xyXG4vLyBUT0RPOiBSZW1vdmUgZnVuY3Rpb24gaW4gbmV4dCByZWxlYXNlXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xyXG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xyXG5cclxuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPT0gMCB7XHJcbiAgICBAcmV0dXJuICRvdXRwdXQ7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XHJcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xyXG4gICAgICBAcmV0dXJuICRicmVha3BvaW50cztcclxuICAgIH0gQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIG9yICRvdmVyd3JpdGUgPT0gdHJ1ZSB7XHJcbiAgICAgIEByZXR1cm4gbWFwLW1lcmdlKCRicmVha3BvaW50cywgJG91dHB1dCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xyXG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xyXG5cclxuICBAaWYgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XHJcbiAgICAkQlJFQUtQT0lOVFM6ICRvdXRwdXQgIWdsb2JhbDtcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcclxuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XHJcbiAgICAgICRCUkVBS1BPSU5UUzogJEJSRUFLUE9JTlRTICFnbG9iYWw7XHJcbiAgICB9IEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xyXG4gICAgICAkQlJFQUtQT0lOVFM6IG1hcC1tZXJnZSgkQlJFQUtQT0lOVFMsICRvdXRwdXQpICFnbG9iYWw7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiQG1peGluIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nIHtcclxuICAkbGVnYWN5VmFyczogKFxyXG4gICAgICAgICAgJ2RlZmF1bHQtbWVkaWEnOiAnZGVmYXVsdCBtZWRpYScsXHJcbiAgICAgICAgICAnZGVmYXVsdC1mZWF0dXJlJzogJ2RlZmF1bHQgZmVhdHVyZScsXHJcbiAgICAgICAgICAnZm9yY2UtbWVkaWEtYWxsJzogJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJyxcclxuICAgICAgICAgICd0by1lbXMnOiAndG8gZW1zJyxcclxuICAgICAgICAgICdyZXNvbHV0aW9ucyc6ICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLFxyXG4gICAgICAgICAgJ25vLXF1ZXJpZXMnOiAnbm8gcXVlcmllcycsXHJcbiAgICAgICAgICAnbm8tcXVlcnktZmFsbGJhY2tzJzogJ25vIHF1ZXJ5IGZhbGxiYWNrcycsXHJcbiAgICAgICAgICAnYmFzZS1mb250LXNpemUnOiAnYmFzZSBmb250IHNpemUnLFxyXG4gICAgICAgICAgJ2xlZ2FjeS1zeW50YXgnOiAnbGVnYWN5IHN5bnRheCdcclxuICApO1xyXG5cclxuICBAZWFjaCAkbGVnYWN5LCAkbmV3IGluICRsZWdhY3lWYXJzIHtcclxuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LScgKyAkbGVnYWN5KSB7XHJcbiAgICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gY2hhbmdlIHNldHRpbmdzIGZvciBCcmVha3BvaW50LiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50LSN7JGxlZ2FjeX06IHt7c2V0dGluZ319YCB0byBgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJyN7JG5ld30nLCB7e3NldHRpbmd9fSlgLiBWYXJpYWJsZSBzZXR0aW5ncywgYXMgd2VsbCBhcyB0aGlzIHdhcm5pbmcgd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcclxuICAgIH1cclxuICB9XHJcbjtcclxuXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgLy8gSGFuZCBjb3JyZWN0IGVhY2ggc2V0dGluZ1xyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtbWVkaWEnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdkZWZhdWx0IG1lZGlhJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSk7XHJcbiAgfVxyXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdkZWZhdWx0IGZlYXR1cmUnLCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUpO1xyXG4gIH1cclxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwnKSBhbmQgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsICE9IGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScsICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCk7XHJcbiAgfVxyXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXRvLWVtcycpIGFuZCAkYnJlYWtwb2ludC10by1lbXMgIT0gYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0byBlbXMnLCAkYnJlYWtwb2ludC10by1lbXMpO1xyXG4gIH1cclxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1yZXNvbHV0aW9ucycpIGFuZCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyAhPSBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycsICRicmVha3BvaW50LXJlc29sdXRpb25zKTtcclxuICB9XHJcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcmllcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyaWVzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ25vIHF1ZXJpZXMnLCAkYnJlYWtwb2ludC1uby1xdWVyaWVzKTtcclxuICB9XHJcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycsICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyk7XHJcbiAgfVxyXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWJhc2UtZm9udC1zaXplJykgYW5kICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplICE9IGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdiYXNlIGZvbnQgc2l6ZScsICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplKTtcclxuICB9XHJcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCcpIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ICE9IGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4Jykge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2xlZ2FjeSBzeW50YXgnLCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4KTtcclxuICB9XHJcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gRGVmYXVsdCBTZXR0aW5nc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuJFNpbmd1bGFyaXR5LVNldHRpbmdzOiAoXHJcbiAgICAgICAgJ2dyaWRzJzogKC0xcHg6IDEyKSxcclxuICAgICAgICAnZ3V0dGVycyc6ICgtMXB4OiAuMjUpLFxyXG4gICAgICAgICdndXR0ZXIgc3R5bGVzJzogKC0xcHg6ICdvcHBvc2l0ZScpLFxyXG4gICAgICAgICdvdXRwdXQnOiAnaXNvbGF0aW9uJyxcclxuICAgICAgICAnZGlyZWN0aW9uJzogJ2x0cicsXHJcbiAgICAgICAgJ21vYmlsZSBmaXJzdCc6IHRydWUsXHJcbiAgICAgICAgJ2luY2x1ZGUgYm9yZGVyIGJveCc6IGZhbHNlLFxyXG4gICAgICAgICdpbmNsdWRlIGNsZWFyZml4JzogZmFsc2UsXHJcbiAgICAgICAgJ2JhY2tncm91bmQgZ3JpZCBjb2xvcic6IGNob2NvbGF0ZSxcclxuICAgICAgICAnYXN5bW1ldHJpYyBvdXRwdXQnOiAnaXNvbGF0aW9uJyxcclxuICAgICAgICAnY2FsYyBpbmNsdWRlIG1pbi13aWR0aCc6IHRydWUsXHJcbiAgICAgICAgJ2RlYnVnJzogZmFsc2VcclxuKTtcclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBVc2VyIFNldHRpbmdzXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4kc2luZ3VsYXJpdHk6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEltcG9ydCBHZW5lcmFsIEhlbHBlcnNcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2hlbHBlcnNcIjtcclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBJbXBvcnQgTGFuZ3VhZ2UgSGVscGVyc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvbGFuZ3VhZ2VcIjtcclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBJbXBvcnQgTWF0aFxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvbWF0aFwiO1xyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEltcG9ydCBHcmlkIEhlbHBlcnNcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2dyaWRzXCI7XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gSW1wb3J0IEd1dHRlcnMgSGVscGVyc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGltcG9ydCBcInNpbmd1bGFyaXR5Z3MvZ3V0dGVyc1wiO1xyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEltcG9ydCBHdXR0ZXIgU3R5bGVzXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AaW1wb3J0IFwic2luZ3VsYXJpdHlncy9ndXR0ZXItc3R5bGVzXCI7XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gSW1wb3J0IEFQSXNcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBpbXBvcnQgXCJzaW5ndWxhcml0eWdzL2FwaVwiOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBTZXR0aW5nIEhlbHBlcnNcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBpbXBvcnQgXCJoZWxwZXJzL3NldHRpbmdzXCI7XHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBDb2RlIEhlbHBlcnNcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBpbXBvcnQgXCJoZWxwZXJzL2ZpbmRcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc2Fzcy1saXN0c1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9jb2x1bW5zXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3NwYW4tc2hhcmVkXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbnNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc29ydFwiO1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gVUkgSGVscGVyc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGltcG9ydCBcImhlbHBlcnMvYmFja2dyb3VuZC1ncmlkXCI7XHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBMYXlvdXQgSGVscGVyc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGltcG9ydCBcImhlbHBlcnMvbGF5b3V0XCI7IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEhhcyBTZXR0aW5nXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gc2dzLWhhcygkc2V0dGluZykge1xyXG4gIEBpZiBtYXAtaGFzLWtleSgkc2luZ3VsYXJpdHksICRzZXR0aW5nKSB7XHJcbiAgICBAcmV0dXJuIHRydWU7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEdldCBTZXR0aW5nc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIHNncy1nZXQoJHNldHRpbmcpIHtcclxuICBAaWYgc2dzLWhhcygkc2V0dGluZykge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRzaW5ndWxhcml0eSwgJHNldHRpbmcpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRTaW5ndWxhcml0eS1TZXR0aW5ncywgJHNldHRpbmcpO1xyXG4gIH1cclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFNldCBTZXR0aW5nc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIHNncy1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xyXG4gIEBpZiAoc3RyLWluZGV4KCRzZXR0aW5nLCAnLScpIG9yIHN0ci1pbmRleCgkc2V0dGluZywgJ18nKSkgYW5kIHN0ci1pbmRleCgkc2V0dGluZywgJyAnKSA9PSBudWxsIHtcclxuICAgIEB3YXJuIFwiV29yZHMgaW4gU2luZ3VsYXJpdHkgc2V0dGluZ3Mgc2hvdWxkIGJlIHNwYWNlcywgbm90IGRhc2hlcyBvciB1bmRlcnNjb3Jlcy4gUGxlYXNlIHJlcGxhY2UgZGFzaGVzIGFuZCB1bmRlcnNjb3JlcyBiZXR3ZWVuIHdvcmRzIHdpdGggc3BhY2VzLiBTZXR0aW5ncyB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIHVudGlsIGNoYW5nZWQuXCI7XHJcbiAgfVxyXG4gICRzaW5ndWxhcml0eTogbWFwLW1lcmdlKCRzaW5ndWxhcml0eSwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuQG1peGluIHNncy1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xyXG4gICRzZ3MtY2hhbmdlOiBzZ3Mtc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xyXG59XHJcblxyXG5AbWl4aW4gc2dzLXNldCgkc2V0dGluZywgJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgc2dzLWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFJlbW92ZSBTZXR0aW5nXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gc2dzLXJlc2V0KCRzZXR0aW5ncy4uLikge1xyXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAxIHtcclxuICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xyXG4gICAgJHNpbmd1bGFyaXR5OiBtYXAtcmVtb3ZlKCRzaW5ndWxhcml0eSwgJHNldHRpbmcpICFnbG9iYWw7XHJcbiAgfVxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuQG1peGluIHNncy1yZXNldCgkc2V0dGluZ3MuLi4pIHtcclxuICAkc2dzLXJlc2V0OiBzZ3MtcmVzZXQoJHNldHRpbmdzKTtcclxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBGaW5kIE9iamVjdCBLZXlzXHJcbi8vXHJcbi8vIFJldHVybnNcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBmdW5jdGlvbiBmaW5kLW9iamVjdC1rZXlzKCRoYXlzdGFjaykge1xyXG4gICRLZXlzOiBtYXAta2V5cygkaGF5c3RhY2spO1xyXG4gICRMaXN0OiAoKTtcclxuICBAZWFjaCAkS2V5IGluICRLZXlzIHtcclxuICAgIEBpZiAkS2V5ICE9IC0xcHgge1xyXG4gICAgICBAaWYgdW5pdCgkS2V5KSA9PSAnZW0nIHtcclxuICAgICAgICAkS2V5OiAkS2V5IC8gMWVtICogMTZweDtcclxuICAgICAgfVxyXG4gICAgICAkTGlzdDogYXBwZW5kKCRMaXN0LCAkS2V5KTtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiBxdWlja3NvcnQoJExpc3QpO1xyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gRmluZCBPYmplY3RcclxuLy9cclxuLy8gRmluZHMgcmVsZXZhbnQgb2JqZWN0XHJcbi8vIE11c3QgYmUgdXNpbmcgQnJlYWtwb2ludCB0byB3b3JrIHByb3Blcmx5XHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gZmluZC1vYmplY3QoJGhheXN0YWNrLCAkdXNlci1vYmplY3Q6IG51bGwpIHtcclxuICAvLyBJZiBhIHVzZXIgb2JqZWN0IGhhcyBiZWVuIHBhc3NlZCBpbiwgYnlwYXNzIHRoZSB3aG9sZSBmdW5jdGlvbiBhbmQganVzdCByZXR1cm4gdGhhdCBvYmplY3QuXHJcbiAgQGlmICR1c2VyLW9iamVjdCAhPSBudWxsIGFuZCAkdXNlci1vYmplY3QgIT0gZmFsc2Uge1xyXG4gICAgQHJldHVybiAkdXNlci1vYmplY3Q7XHJcbiAgfVxyXG5cclxuICAkTGVuZ3RoOiBsZW5ndGgoJGhheXN0YWNrKTtcclxuICAkTW9iaWxlLUZpcnN0OiBzZ3MtZ2V0KCdtb2JpbGUgZmlyc3QnKTtcclxuXHJcbiAgLy8gSGF5c3RhY2sgbXVzdCBiZSBtYXBcclxuICBAaWYgdHlwZS1vZigkaGF5c3RhY2spICE9ICdtYXAnIHtcclxuICAgIEB3YXJuIFwiREVQUkVDQVRJT046IEluIG9yZGVyIHRvIHJlbW92ZSBnbG9iYWwgdmFyaWFibGUgbmFtaW5nIGNvbmZsaWN0cywgU2luZ3VsYXJpdHkncyBzZXR0aW5ncyBoYXZlIGJlZW4gbW92ZWQgaW50byB0aGUgc2luZ2xlIGAkc2luZ3VsYXJpdHlgIHZhcmlhYmxlLiBQbGVhc2UgcmVmZXIgdG8gb3VyIGRvY3VtZW50YXRpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvU2luZ3VsYXJpdHkvd2lraSkgb24gaG93IHRvIHVwZGF0ZSB5b3VyIHNldHRpbmdzLiBJbiB0aGUgbmV4dCB2ZXJzaW9uIG9mIFNpbmd1bGFyaXR5LCB0aGlzIHdhcm5pbmcgd2lsbCBiZSByZW1vdmVkLiAje250aCgkaGF5c3RhY2ssIDEpfSBoYXMgYmVlbiByZXR1cm5lZC5cIjtcclxuICAgIEByZXR1cm4gbnRoKCRoYXlzdGFjaywgMSk7XHJcbiAgfVxyXG5cclxuICAvLyBHcmFiIEJyZWFrcG9pbnQgQ29udGV4dFxyXG4gIEBpZiBub3QgZnVuY3Rpb24tZXhpc3RzKGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQpIHtcclxuICAgIEB3YXJuIFwiUmVzcG9uc2l2ZSBjb250ZXh0cyByZXF1aXJlIEJyZWFrcG9pbnQgKGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvYnJlYWtwb2ludCkuIFBsZWFzZSBlbnN1cmUgdGhhdCBCcmVha3BvaW50IGlzIGltcG9ydGVkIGFuZCBhdmFpbGFibGUgZm9yIFNpbmd1bGFyaXR5IHRvIHVzZS4gRmlyc3QgaXRlbSB1c2VkLlwiO1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XHJcbiAgfVxyXG4gIC8vIEdldCBCcmVha3BvaW50IENvbnRleHRzXHJcbiAgJFF1ZXJ5LU1pbjogYnJlYWtwb2ludC1nZXQtY29udGV4dCgnbWluLXdpZHRoJyk7XHJcbiAgJFF1ZXJ5LU1heDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgnbWF4LXdpZHRoJyk7XHJcblxyXG4gIEBpZiBsZW5ndGgoJFF1ZXJ5LU1pbikgPT0gMSB7XHJcbiAgICAkUXVlcnktTWluOiBudGgoJFF1ZXJ5LU1pbiwgMSk7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJFF1ZXJ5LU1pbikgPiAxIHtcclxuICAgIEB3YXJuIFwiUmVzcG9uc2l2ZSBjb250ZXh0cyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgYG9yYCBxdWVyaWVzIGFzIHdoaWNoIHF1ZXJ5IHRvIHVzZSBpcyBhbWJpZ3VvdXMuIFBsZWFzZSBvbmx5IHVzZSBzaW5nbGUgY29udGV4dCBxdWVyaWVzLiBEZWZhdWx0IGNvbnRleHQgaXMgdXNlZC5cIjtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkaGF5c3RhY2ssIC0xcHgpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRMZW5ndGggPiAxIHtcclxuICAgIEBpZiBsZW5ndGgoJFF1ZXJ5LU1heCkgPT0gMSB7XHJcbiAgICAgICRRdWVyeS1NYXg6IG50aCgkUXVlcnktTWF4LCAxKTtcclxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCRRdWVyeS1NYXgpID4gMSB7XHJcbiAgICAgIEB3YXJuIFwiUmVzcG9uc2l2ZSBjb250ZXh0cyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgYG9yYCBxdWVyaWVzIGFzIHdoaWNoIHF1ZXJ5IHRvIHVzZSBpcyBhbWJpZ3VvdXMuIFBsZWFzZSBvbmx5IHVzZSBzaW5nbGUgY29udGV4dCBxdWVyaWVzLiBEZWZhdWx0IGNvbnRleHQgaXMgdXNlZC5cIjtcclxuICAgICAgQHJldHVybiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gbWluIG9yIG1heCBjb250ZXh0LCByZXR1cm4gZmlyc3QgaXRlbVxyXG4gICAgQGlmICRRdWVyeS1NaW4gPT0gZmFsc2UgYW5kICRRdWVyeS1NYXggPT0gZmFsc2Uge1xyXG4gICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XHJcbiAgICAgIEByZXR1cm4gJFJFVFVSTjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDb252ZXJ0IHRvIFBYXHJcbiAgICBAaWYgJFF1ZXJ5LU1pbiAhPSBmYWxzZSBhbmQgIHVuaXQoJFF1ZXJ5LU1pbikgPT0gJ2VtJyB7XHJcbiAgICAgICRRdWVyeS1NaW46ICRRdWVyeS1NaW4gLyAxZW0gKiAxNnB4O1xyXG4gICAgfVxyXG4gICAgQGlmICRRdWVyeS1NYXggIT0gZmFsc2UgYW5kIHVuaXQoJFF1ZXJ5LU1heCkgPT0gJ2VtJyB7XHJcbiAgICAgICRRdWVyeS1NYXg6ICRRdWVyeS1NYXggLyAxZW0gKiAxNnB4O1xyXG4gICAgfVxyXG5cclxuICAgICRGaW5kLUhheXN0YWNrOiBmaW5kLW9iamVjdC1rZXlzKCRoYXlzdGFjayk7XHJcbiAgICAkUmV2ZXJzZS1IYXlzdGFjazogcmV2ZXJzZSgkRmluZC1IYXlzdGFjayk7XHJcblxyXG4gICAgJFNtYWxsZXN0OiBudGgoJEZpbmQtSGF5c3RhY2ssIDEpO1xyXG4gICAgJExhcmdlc3Q6IG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgMSk7XHJcbiAgICAkQ29udGV4dDogJFF1ZXJ5LU1pbjtcclxuXHJcbiAgICBAaWYgbm90ICRNb2JpbGUtRmlyc3Qge1xyXG4gICAgICAkQ29udGV4dDogJFF1ZXJ5LU1heDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBMb29wIG92ZXIgZWFjaCBpdGVtIGluIENvbnRleHQgdG8gZmluZCBpZiBhbnkgb2YgdGhlIGl0ZW1zIHBhc3MuXHJcbiAgICBAZWFjaCAkUXVlcnktQ29udGV4dCBpbiAkQ29udGV4dCB7XHJcbiAgICAgIEBpZiAkUXVlcnktQ29udGV4dCAhPSBmYWxzZSB7XHJcbiAgICAgICAgLy8gSWYgaXQncyBzbWFsbGVzdCB0aGFuIHRoZSBzbWFsbGVzdCBNUSwgdXNlIHRoZSAxc3QgZ3JpZFxyXG4gICAgICAgIEBpZiAkUXVlcnktQ29udGV4dCA8ICRTbWFsbGVzdCB7XHJcbiAgICAgICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgLTFweCk7XHJcbiAgICAgICAgICBAcmV0dXJuICRSRVRVUk47XHJcbiAgICAgICAgfVxyXG4gICAgICAgICAgLy8gSWYgaXQncyBsYXJnZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbGFyZ2VzdCBNUSwgdXNlIHRoZSBsYXN0IGdyaWRcclxuICAgICAgICBAZWxzZSBpZiAkUXVlcnktQ29udGV4dCA+PSAkTGFyZ2VzdCB7XHJcbiAgICAgICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgJExhcmdlc3QpO1xyXG4gICAgICAgICAgQHJldHVybiAkUkVUVVJOO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgIC8vIElmIGl0J3MgaW4gYmV0d2VlbiB0aGUgc21hbGxlc3QgYW5kIGxhcmdlc3QsIGdvIHJ1biBhIGNoZWNrLlxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIE1RLlxyXG4gICAgICAgICAgQGZvciAkaiBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJFJldmVyc2UtSGF5c3RhY2spIHtcclxuICAgICAgICAgICAgJFF1ZXJ5OiBudGgoJFJldmVyc2UtSGF5c3RhY2ssICRqKTtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBNUSBpcyBncmVhdGhlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0aGUgTVEgaW4gcXVlc3Rpb24sIHVzZSBpdCEgKG1vYmlsZSBmaXJzdClcclxuICAgICAgICAgICAgQGlmICgkTW9iaWxlLUZpcnN0KSB7XHJcbiAgICAgICAgICAgICAgQGlmICRRdWVyeS1Db250ZXh0ID49ICRRdWVyeSB7XHJcbiAgICAgICAgICAgICAgICAkUkVUVVJOOiBtYXAtZ2V0KCRoYXlzdGFjaywgbnRoKCRSZXZlcnNlLUhheXN0YWNrLCAkaikpO1xyXG4gICAgICAgICAgICAgICAgQHJldHVybiAkUkVUVVJOO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIElmIHRoZSBNUSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRoZSBNUSBpbiBxdWVzdGlvbiwgdXNlIGl0ISAobm90IG1vYmlsZSBmaXJzdClcclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgIEBpZiAkUXVlcnktQ29udGV4dCA8PSAkUXVlcnkge1xyXG4gICAgICAgICAgICAgICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIG50aCgkUmV2ZXJzZS1IYXlzdGFjaywgJGopKTtcclxuICAgICAgICAgICAgICAgIEByZXR1cm4gJFJFVFVSTjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgICAvLyBBbGwgZWxzZSBmYWlscywgcmV0dXJuIHRoZSBmaXJzdCBpdGVtXHJcbiAgQGVsc2Uge1xyXG4gICAgJFJFVFVSTjogbWFwLWdldCgkaGF5c3RhY2ssIC0xcHgpO1xyXG4gICAgQHJldHVybiAkUkVUVVJOO1xyXG4gIH1cclxufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBTYXNzIExpc3QgSGVscGVyc1xyXG4vL1xyXG4vLyAtIGxpc3Qtc3VtKClcclxuLy8gLSBxdWVyeS1saXN0KClcclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBGdW5jdGlvbnNcclxuXHJcbi8vIFJldHVybiB0aGUgc3VtIG9mIGFsbCBpdGVtcyBpbiBhIGxpc3QuXHJcbi8vXHJcbi8vIGxpc3Qtc3VtKCRsaXN0KVxyXG4vLyAtICRsaXN0ICA6IDxsaXN0PlxyXG5AZnVuY3Rpb24gbGlzdC1zdW0oJGxpc3QpIHtcclxuICAkc3VtOiAwO1xyXG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgICRzdW06ICRzdW0gKyAkaXRlbTtcclxuICB9XHJcbiAgQHJldHVybiAkc3VtO1xyXG59XHJcblxyXG4vLyBSZXR1cm4gbGlzdCBvZiBpbmRleCBsb2NhdGlvbnMgd2hlcmUgYSBxdWVyeSBhcHBlYXJzIGluIGEgbGlzdCxcclxuLy8gaW5jbHVkaW5nIHVuaXQgcXVlcmllcy5cclxuLy9cclxuLy8gcXVlcnktbGlzdCgkbGlzdCwgJHF1ZXJ5IFssICRtb2RlXSlcclxuLy8gLSAkbGlzdCAgICA6IDxsaXN0PlxyXG4vLyAtICRxdWVyeSAgIDogPGFueXRoaW5nPlxyXG4vLyAtICRtb2RlICAgIDogbm9uZSB8IHVuaXRcclxuLy8gICAgICAgICAgICAtIFwibm9uZVwiIChkZWZhdWx0KSBydW5zIGEgc3RhbmRhcmQgcXVlcnkuXHJcbi8vICAgICAgICAgICAgLSBcInVuaXRcIiBmaW5kcyBhbGwgaXRlbXMgd2l0aCB0aGUgc2FtZSB1bml0LlxyXG5AZnVuY3Rpb24gcXVlcnktbGlzdChcclxuICAkbGlzdCxcclxuICAkcXVlcnksXHJcbiAgJG1vZGU6IG5vbmVcclxuKSB7XHJcbiAgJHJldHVybjogKCk7XHJcblxyXG4gIC8vIGxvb3AgdGhyb3VnaCAkbGlzdFxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XHJcbiAgICBAaWYgJG1vZGUgPT0gdW5pdCB7XHJcbiAgICAgIC8vIGlmIHRoZSBsaXN0IGl0ZW0gbWF0Y2hlcyB0aGUgcXVlcnksIHdyaXRlIHdoZXJlIGl0IGlzIHRvIHRoZSBsaXN0LlxyXG4gICAgICBAaWYgdW5pdChudGgoJGxpc3QsICRpKSkgPT0gJHF1ZXJ5IHtcclxuICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJGkpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLy8gaWYgdGhlIGxpc3QgaXRlbSBtYXRjaGVzIHRoZSBxdWVyeSwgd3JpdGUgd2hlcmUgaXQgaXMgdG8gdGhlIGxpc3QuXHJcbiAgICAgIEBpZiBudGgobnRoKCRsaXN0LCAkaSksIDEpID09ICRxdWVyeSB7XHJcbiAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sICRpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gaWYgbm90aGluZyBtYXRjaGVzIHRoZW4gcmV0dXJuIGZhbHNlLlxyXG4gIEBpZiAkcmV0dXJuID09ICgpIHtcclxuICAgICRyZXR1cm46IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8gcmV0dXJuIGxpc3QuXHJcbiAgQHJldHVybiAkcmV0dXJuO1xyXG59XHJcblxyXG4vLyBSZXZlcnNlcyBkaXJlY3Rpb24gb2YgYSBsaXN0XHJcbkBmdW5jdGlvbiByZXZlcnNlKCRsaXN0KSB7XHJcbiAgJGxlbmd0aDogbGVuZ3RoKCRsaXN0KTtcclxuICAkcmV0dXJuOiAoKTtcclxuICBAZm9yICRpIGZyb20gMCB0byAkbGVuZ3RoIHtcclxuICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCBudGgoJGxpc3QsICRsZW5ndGggLSAkaSkpO1xyXG4gIH1cclxuICBAcmV0dXJuICRyZXR1cm47XHJcbn0iLCJAZnVuY3Rpb24gZW5kLXJvdygkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucykge1xyXG4gIEBpZiAkbG9jYXRpb24gPT0gJ2xhc3QnIG9yICRsb2NhdGlvbiA9PSAnb21lZ2EnIHtcclxuICAgIEByZXR1cm4gdHJ1ZTtcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiAkbG9jYXRpb24gKyAoJHNwYW4gLSAxKSA9PSBjb2x1bW4tY291bnQoJGNvbHVtbnMpIHtcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gc3RhcnQtcm93KCRsb2NhdGlvbikge1xyXG4gIEBpZiAkbG9jYXRpb24gPT0gJ2ZpcnN0JyBvciAkbG9jYXRpb24gPT0gJ2FscGhhJyB7XHJcbiAgICBAcmV0dXJuIHRydWU7XHJcbiAgfSBAZWxzZSBpZiAkbG9jYXRpb24gPT0gMSB7XHJcbiAgICBAcmV0dXJuIHRydWU7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufSIsIkBtaXhpbiBzcGFuLXNoYXJlZCB7XHJcbiAgJGluY2x1ZGUtYm9yZGVyLWJveDogc2dzLWdldCgnaW5jbHVkZSBib3JkZXIgYm94Jyk7XHJcbiAgJGluY2x1ZGUtY2xlYXJmaXg6IHNncy1nZXQoJ2luY2x1ZGUgY2xlYXJmaXgnKTtcclxuXHJcbiAgQGlmICRpbmNsdWRlLWJvcmRlci1ib3gge1xyXG4gICAgQGlmIG1peGluLWV4aXN0cyhib3gtc2l6aW5nKSB7XHJcbiAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRpbmNsdWRlLWNsZWFyZml4IHtcclxuICAgIEBpZiBtaXhpbi1leGlzdHMoY2xlYXJmaXgpIHtcclxuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBGaW5kIE9wcG9zaXRlIERpcmVjdGlvblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIG9wcG9zaXRlLWRpcmVjdGlvbigkZGlyKSB7XHJcbiAgQGlmICRkaXIgPT0gJ2xlZnQnIHtcclxuICAgIEByZXR1cm4gcmlnaHQ7XHJcbiAgfSBAZWxzZSBpZiAkZGlyID09ICdyaWdodCcge1xyXG4gICAgQHJldHVybiBsZWZ0O1xyXG4gIH0gQGVsc2UgaWYgJGRpciA9PSAnbHRyJyB7XHJcbiAgICBAcmV0dXJuIHJ0bDtcclxuICB9IEBlbHNlIGlmICRkaXIgPT0gJ3J0bCcge1xyXG4gICAgQHJldHVybiBsdHI7XHJcbiAgfSBAZWxzZSBpZiAkZGlyID09ICd0b3AnIHtcclxuICAgIEByZXR1cm4gYm90dG9tO1xyXG4gIH0gQGVsc2UgaWYgJGRpciA9PSAnYm90dG9tJyB7XHJcbiAgICBAcmV0dXJuIHRvcDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiI3skZGlyfSBpcyBub3QgYSBkaXJlY3Rpb24hIE1ha2Ugc3VyZSB5b3VyIGRpcmVjdGlvbiBpcyBhbGwgbG93ZXJjYXNlIVwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBGaW5kIERpcmVjdGlvbiBOYW1lXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gbmFtZWQtZGlyZWN0aW9uKCRkaXIpIHtcclxuICBAaWYgJGRpciA9PSAnbHRyJyB7XHJcbiAgICBAcmV0dXJuIGxlZnQ7XHJcbiAgfSBAZWxzZSBpZiAkZGlyID09ICdydGwnIHtcclxuICAgIEByZXR1cm4gcmlnaHQ7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcIiN7JGRpcn0gaXMgbm90IGEgdmFsaWQgSFRNTCBkaXJlY3Rpb24hIE1ha2Ugc3VyZSB5b3UgYXJlIHVzaW5nIGEgdmFsaWQgSFRNTCBkaXJlY3Rpb25cIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFF1aWNrc29ydFxyXG4vLyBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvU29ydGluZ19hbGdvcml0aG1zL1F1aWNrc29ydFxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIHF1aWNrc29ydCgkbGlzdCkge1xyXG5cclxuICAkUVMtTGVzczogKCk7XHJcbiAgJFFTLUVxdWFsOiAoKTtcclxuICAkUVMtTGFyZ2U6ICgpO1xyXG5cclxuICAkUVMtTGVuZ3RoOiBsZW5ndGgoJGxpc3QpO1xyXG5cclxuICAkUVMtU2VlZDogcm91bmQoJFFTLUxlbmd0aCAvIDIpO1xyXG5cclxuICBAaWYgJFFTLUxlbmd0aCA+IDEge1xyXG4gICAgJFFTLVNlZWQ6IG50aCgkbGlzdCwgJFFTLVNlZWQpO1xyXG4gICAgQGVhY2ggJEl0ZW0gaW4gJGxpc3Qge1xyXG4gICAgICBAaWYgJEl0ZW0gPCAkUVMtU2VlZCB7XHJcbiAgICAgICAgJFFTLUxlc3M6IGFwcGVuZCgkUVMtTGVzcywgJEl0ZW0pO1xyXG4gICAgICB9IEBlbHNlIGlmICRJdGVtID09ICRRUy1TZWVkIHtcclxuICAgICAgICAkUVMtRXF1YWw6IGFwcGVuZCgkUVMtRXF1YWwsICRJdGVtKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJFFTLUxhcmdlOiBhcHBlbmQoJFFTLUxhcmdlLCAkSXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICRRUy1MZXNzOiBxdWlja3NvcnQoJFFTLUxlc3MpO1xyXG4gICAgJFFTLUxhcmdlOiBxdWlja3NvcnQoJFFTLUxhcmdlKTtcclxuXHJcbiAgICAkUVMtUmV0dXJuOiBqb2luKCRRUy1MZXNzLCAkUVMtRXF1YWwpO1xyXG4gICAgJFFTLVJldHVybjogam9pbigkUVMtUmV0dXJuLCAkUVMtTGFyZ2UpO1xyXG5cclxuICAgIEByZXR1cm4gJFFTLVJldHVybjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBTb3J0IE1hcCBmdW5jdGlvblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIHNvcnQtbWFwKCRtYXAsICRyZXZlcnNlOiBmYWxzZSkge1xyXG4gICRTb3J0LU1hcC1LZXlzOiBxdWlja3NvcnQobWFwLWtleXMoJG1hcCkpO1xyXG4gICRTb3J0LU1hcC1NYXA6ICgpO1xyXG5cclxuICBAaWYgJHJldmVyc2Uge1xyXG4gICAgJFNvcnQtTWFwLUtleXM6IHJldmVyc2UoJFNvcnQtTWFwLUtleXMpO1xyXG4gIH1cclxuXHJcbiAgQGVhY2ggJGtleSBpbiAkU29ydC1NYXAtS2V5cyB7XHJcbiAgICAkU29ydC1NYXAtTWFwOiBtYXAtbWVyZ2UoJFNvcnQtTWFwLU1hcCwgKCRrZXk6IG1hcC1nZXQoJG1hcCwgJGtleSkpKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJFNvcnQtTWFwLU1hcDtcclxufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIEdyaWQgQmFja2dyb3VuZFxyXG5AaW1wb3J0ICdzdHItcmVwbGFjZSc7XHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZC1ncmlkKFxyXG4gICRjb2x1bW5zOiBudWxsLFxyXG4gICRndXR0ZXI6IG51bGwsXHJcbiAgJGd1dHRlci1zdHlsZTogbnVsbCxcclxuICAkY29sb3I6IG51bGxcclxuKSB7XHJcblxyXG4gICRjb2xvcjogaWYoJGNvbG9yICE9IG51bGwsICRjb2xvciwgc2dzLWdldCgnYmFja2dyb3VuZCBncmlkIGNvbG9yJykpO1xyXG5cclxuICBAaWYgc2dzLWdldCgnZGVidWcnKSAhPSBmYWxzZSB7XHJcbiAgICAkY29sdW1uczogaWYoJGNvbHVtbnMgIT0gbnVsbCwgJGNvbHVtbnMsIHNncy1nZXQoJ2dyaWRzJykpO1xyXG4gICAgJGd1dHRlcjogaWYoJGd1dHRlciAhPSBudWxsLCAkZ3V0dGVyLCBzZ3MtZ2V0KCdndXR0ZXJzJykpO1xyXG4gICAgJGd1dHRlci1zdHlsZTogaWYoJGd1dHRlci1zdHlsZSAhPSBudWxsLCAkZ3V0dGVyLXN0eWxlLCBzZ3MtZ2V0KCdndXR0ZXIgc3R5bGVzJykpO1xyXG5cclxuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtYnVpbGQoJGNvbHVtbnMsICRndXR0ZXIsICRndXR0ZXItc3R5bGUsICRjb2xvcilcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBiYWNrZ3JvdW5kLW1hcCgkY29sdW1ucywgJGd1dHRlcnMsICRndXR0ZXItc3R5bGVzKSB7XHJcbiAgJEdyaWRzOiAoKTtcclxuICAkR3V0dGVyczogKCk7XHJcbiAgJFN0eWxlczogKCk7XHJcblxyXG4gIEBpZiAkY29sdW1ucyBhbmQgdHlwZS1vZigkY29sdW1ucykgIT0gJ21hcCcge1xyXG4gICAgJEdyaWRzOiAoLTFweDogJGNvbHVtbnMpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgJEdyaWRzOiBzZ3MtZ2V0KCdncmlkcycpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRndXR0ZXJzIGFuZCB0eXBlLW9mKCRndXR0ZXJzKSAhPSAnbWFwJyB7XHJcbiAgICAkR3V0dGVyczogKC0xcHg6ICRndXR0ZXJzKTtcclxuICB9IEBlbHNlIHtcclxuICAgICRHdXR0ZXJzOiBzZ3MtZ2V0KCdndXR0ZXJzJyk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGd1dHRlci1zdHlsZXMgYW5kIHR5cGUtb2YoJGd1dHRlci1zdHlsZXMpICE9ICdtYXAnIHtcclxuICAgICRTdHlsZXM6ICgtMXB4OiAkZ3V0dGVyLXN0eWxlcyk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkU3R5bGVzOiBzZ3MtZ2V0KCdndXR0ZXIgc3R5bGVzJyk7XHJcbiAgfVxyXG5cclxuICAvLyBCdWlsZCAxc3QgRGVwdGggTWFwXHJcbiAgJEhvbGRlcjogKCk7XHJcblxyXG4gIC8vIEdyaWRzXHJcbiAgQGVhY2ggJGssICR2IGluICRHcmlkcyB7XHJcbiAgICAkSG9sZGVyOiBtYXAtbWVyZ2UoJEhvbGRlciwgKCRrOiAoJ2dyaWQnOiAkdikpKTtcclxuICB9XHJcbiAgLy8gR3V0dGVyc1xyXG4gIEBlYWNoICRrLCAkdiBpbiAkR3V0dGVycyB7XHJcbiAgICAkR3JpZDogbWFwLWdldCgkSG9sZGVyLCAkayk7XHJcblxyXG4gICAgJE1hcDogKCdndXR0ZXInOiAkdik7XHJcbiAgICBAaWYgJEdyaWQgIT0gbnVsbCB7XHJcbiAgICAgICRHcmlkOiBtYXAtZ2V0KCRHcmlkLCAnZ3JpZCcpO1xyXG4gICAgICBAaWYgJEdyaWQgIT0gbnVsbCB7XHJcbiAgICAgICAgJE1hcDogbWFwLW1lcmdlKCRNYXAsICgnZ3JpZCc6ICRHcmlkKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAkSG9sZGVyOiBtYXAtbWVyZ2UoJEhvbGRlciwgKCRrOiAkTWFwKSk7XHJcbiAgfVxyXG4gIC8vIFN0eWxlXHJcbiAgQGVhY2ggJGssICR2IGluICRTdHlsZXMge1xyXG4gICAgJEdyaWQ6IG1hcC1nZXQoJEhvbGRlciwgJGspO1xyXG4gICAgJEd1dHRlcjogbWFwLWdldCgkSG9sZGVyLCAkayk7XHJcblxyXG4gICAgJE1hcDogKCdzdHlsZSc6ICR2KTtcclxuICAgIEBpZiAkR3JpZCAhPSBudWxsIHtcclxuICAgICAgJEdyaWQ6IG1hcC1nZXQoJEdyaWQsICdncmlkJyk7XHJcbiAgICAgIEBpZiAkR3JpZCAhPSBudWxsIHtcclxuICAgICAgICAkTWFwOiBtYXAtbWVyZ2UoJE1hcCwgKCdncmlkJzogJEdyaWQpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGlmICRHdXR0ZXIgIT0gbnVsbCB7XHJcbiAgICAgICRHdXR0ZXI6IG1hcC1nZXQoJEd1dHRlciwgJ2d1dHRlcicpO1xyXG4gICAgICBAaWYgJEd1dHRlciAhPSBudWxsIHtcclxuICAgICAgICAkTWFwOiBtYXAtbWVyZ2UoJE1hcCwgKCdndXR0ZXInOiAkR3V0dGVyKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAkSG9sZGVyOiBtYXAtbWVyZ2UoJEhvbGRlciwgKCRrOiAkTWFwKSk7XHJcbiAgfVxyXG5cclxuICAkSG9sZGVyOiBzb3J0LW1hcCgkSG9sZGVyKTtcclxuICAkUmV0dXJuOiAoKTtcclxuXHJcbiAgLy8gQnVpbGQgZnVsbCBzdGFjayBmb3IgZWFjaCBicmVha3BvaW50XHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJEhvbGRlcikge1xyXG4gICAgJEtleTogbnRoKG50aCgkSG9sZGVyLCAkaSksIDEpO1xyXG4gICAgJFZhbHVlOiBudGgobnRoKCRIb2xkZXIsICRpKSwgMik7XHJcblxyXG4gICAgJFByZXZpb3VzOiAoKTtcclxuICAgIEBpZiAkaSA+IDEge1xyXG4gICAgICAkUHJldmlvdXM6IG50aChudGgoJFJldHVybiwgJGkgLSAxKSwgMik7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkVmFsdWUsICdncmlkJykge1xyXG4gICAgICAkU29ydC1HcmlkOiBtYXAtZ2V0KCRQcmV2aW91cywgJ2dyaWQnKTtcclxuICAgICAgJFZhbHVlOiBtYXAtbWVyZ2UoJFZhbHVlLCAoJ2dyaWQnOiAkU29ydC1HcmlkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkVmFsdWUsICdndXR0ZXInKSB7XHJcbiAgICAgICRTb3J0LUd1dHRlcjogbWFwLWdldCgkUHJldmlvdXMsICdndXR0ZXInKTtcclxuICAgICAgJFZhbHVlOiBtYXAtbWVyZ2UoJFZhbHVlLCAoJ2d1dHRlcic6ICRTb3J0LUd1dHRlcikpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJFZhbHVlLCAnc3R5bGUnKSB7XHJcbiAgICAgICRTb3J0LVN0eWxlOiBtYXAtZ2V0KCRQcmV2aW91cywgJ3N0eWxlJyk7XHJcbiAgICAgICRWYWx1ZTogbWFwLW1lcmdlKCRWYWx1ZSwgKCdzdHlsZSc6ICRTb3J0LVN0eWxlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgkS2V5OiAkVmFsdWUpKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJFJldHVybjtcclxufVxyXG5cclxuQG1peGluIGJhY2tncm91bmQtYnVpbGQoJGNvbHVtbnMsICRndXR0ZXJzLCAkZ3V0dGVyLXN0eWxlcywgJGNvbG9yKSB7XHJcbiAgJEJhY2tncm91bmQtTWFwOiBiYWNrZ3JvdW5kLW1hcCgkY29sdW1ucywgJGd1dHRlcnMsICRndXR0ZXItc3R5bGVzKTtcclxuICAkRGlzcGxheTogdHJ1ZTtcclxuXHJcbiAgJENvbHVtbi1Db2xvcjogJGNvbG9yO1xyXG4gICRJbnZlcnNlLUNvbHVtbi1Db2xvcjogbWl4KGJsYWNrLCAkY29sb3IsIDE1JSk7XHJcbiAgJEd1dHRlci1Db2xvcjogbWl4KHdoaXRlLCAkY29sb3IsIDI1JSk7XHJcbiAgJERpcmVjdGlvbjogbmFtZWQtZGlyZWN0aW9uKHNncy1nZXQoJ2RpcmVjdGlvbicpKTtcclxuXHJcbiAgQGVhY2ggJGJrcHQsICRkZWYgaW4gJEJhY2tncm91bmQtTWFwIHtcclxuICAgICRHcmlkOiBtYXAtZ2V0KCRkZWYsICdncmlkJyk7XHJcbiAgICAkR3V0dGVyOiBtYXAtZ2V0KCRkZWYsICdndXR0ZXInKTtcclxuICAgICRTdHlsZTogbWFwLWdldCgkZGVmLCAnc3R5bGUnKTtcclxuXHJcbiAgICAkR3JpZC1Db3VudDogY29sdW1uLWNvdW50KCRHcmlkKTtcclxuXHJcbiAgICAkU1ZHOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+JztcclxuXHJcbiAgICAkR3V0dGVyLVdpZHRoOiBndXR0ZXItc3BhbigkR3V0dGVyLCAkR3JpZCwgJFN0eWxlKTtcclxuICAgIEBpZiB1bml0KCRHdXR0ZXItV2lkdGgpICE9ICclJyBhbmQgdW5pdCgkR3V0dGVyLVdpZHRoKSAhPSAnJyB7XHJcbiAgICAgICRHdXR0ZXItV2lkdGg6IDAlO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkU3R5bGUgPT0gJ2ZpeGVkJyB7XHJcbiAgICAgICRHdXR0ZXItV2lkdGg6IDAlO1xyXG4gICAgfVxyXG4gICAgJENvdW50ZXItV2lkdGg6IDAlO1xyXG4gICAgJGhvbGRlcjogKCk7XHJcblxyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkR3JpZC1Db3VudCB7XHJcbiAgICAgICRIb2xkZXItR3JhZGllbnQ6ICgpO1xyXG4gICAgICAkTG9vcC1XaWR0aDogY29sdW1uLXNwYW4oMSwgJGksICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xyXG5cclxuICAgICAgQGlmIGluZGV4KCRTdHlsZSwgJ3NwbGl0JykgYW5kICRpID09IDEge1xyXG4gICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JEd1dHRlci1Db2xvcn1cIiB3aWR0aD1cIiN7JEd1dHRlci1XaWR0aCAvIDJ9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xyXG4gICAgICAgICRDb3VudGVyLVdpZHRoOiAoJEd1dHRlci1XaWR0aCAvIDIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkTG9vcC1Db2xvcjogJENvbHVtbi1Db2xvcjtcclxuICAgICAgQGlmIChpbmRleCgkU3R5bGUsICdmaXhlZCcpIG9yICRHdXR0ZXItV2lkdGggPT0gMCUpIGFuZCAoJGkgJSAyID09IDAgKSB7XHJcbiAgICAgICAgJExvb3AtQ29sb3I6ICRJbnZlcnNlLUNvbHVtbi1Db2xvcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmICRpICE9ICRHcmlkLUNvdW50IHtcclxuICAgICAgICBAaWYgdW5pdCgkQ291bnRlci1XaWR0aCkgPT0gdW5pdCgkTG9vcC1XaWR0aCkge1xyXG4gICAgICAgICAgJFNWRzogJFNWRyArICc8cmVjdCB4PVwiI3skQ291bnRlci1XaWR0aH1cIiBmaWxsPVwiI3skTG9vcC1Db2xvcn1cIiB3aWR0aD1cIiN7JExvb3AtV2lkdGh9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xyXG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJExvb3AtV2lkdGg7XHJcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRHdXR0ZXItQ29sb3J9XCIgd2lkdGg9XCIjeyRHdXR0ZXItV2lkdGh9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xyXG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJEd1dHRlci1XaWR0aDtcclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICREaXNwbGF5OiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9IEBlbHNlIGlmICRpID09IDEge1xyXG4gICAgICAgIEBpZiB1bml0KCRDb3VudGVyLVdpZHRoKSA9PSB1bml0KCRMb29wLVdpZHRoKSB7XHJcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRMb29wLUNvbG9yfVwiIHdpZHRoPVwiI3skTG9vcC1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XHJcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRMb29wLVdpZHRofVwiIGZpbGw9XCIjeyRHdXR0ZXItQ29sb3J9XCIgd2lkdGg9XCIjeyRHdXR0ZXItV2lkdGh9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xyXG4gICAgICAgICAgJENvdW50ZXItV2lkdGg6ICRDb3VudGVyLVdpZHRoICsgJExvb3AtV2lkdGggKyAkR3V0dGVyLVdpZHRoO1xyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgJERpc3BsYXk6IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0gQGVsc2UgaWYgJGkgPT0gJEdyaWQtQ291bnQgYW5kIGluZGV4KCRTdHlsZSwgJ3NwbGl0Jykge1xyXG4gICAgICAgIEBpZiB1bml0KCRDb3VudGVyLVdpZHRoKSA9PSB1bml0KCRMb29wLVdpZHRoKSB7XHJcbiAgICAgICAgICAkU1ZHOiAkU1ZHICsgJzxyZWN0IHg9XCIjeyRDb3VudGVyLVdpZHRofVwiIGZpbGw9XCIjeyRMb29wLUNvbG9yfVwiIHdpZHRoPVwiI3skTG9vcC1XaWR0aH1cIiBoZWlnaHQ9XCIxMDAlXCIvPic7XHJcbiAgICAgICAgICAkQ291bnRlci1XaWR0aDogJENvdW50ZXItV2lkdGggKyAkTG9vcC1XaWR0aDtcclxuICAgICAgICAgICRTVkc6ICRTVkcgKyAnPHJlY3QgeD1cIiN7JENvdW50ZXItV2lkdGh9XCIgZmlsbD1cIiN7JEd1dHRlci1Db2xvcn1cIiB3aWR0aD1cIiN7JEd1dHRlci1XaWR0aCAvIDJ9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgJERpc3BsYXk6IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJFNWRzogJFNWRyArICc8cmVjdCB4PVwiI3skQ291bnRlci1XaWR0aH1cIiBmaWxsPVwiI3skTG9vcC1Db2xvcn1cIiB3aWR0aD1cIiN7JExvb3AtV2lkdGh9XCIgaGVpZ2h0PVwiMTAwJVwiLz4nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJFNWRzogJFNWRyArICc8L3N2Zz4nO1xyXG4gICAgJFNWRzogdXJsLWVuY29kZSgkU1ZHKTtcclxuXHJcbiAgICBAaWYgJERpc3BsYXkge1xyXG5cclxuICAgICAgQGlmICRia3B0ICE9IC0xcHgge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJrcHQpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLCcgKyAkU1ZHKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLCcgKyAkU1ZHKTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEB3YXJuICdDYW5ub3QgZ2VuZXJhdGUgYSBCYWNrZ3JvdW5kIEdyaWQgZm9yIGdyaWQgYCN7JEdyaWR9YCB3aXRoIGd1dHRlcnMgYCN7JEd1dHRlcn1gIGFuZCBndXR0ZXIgc3R5bGUgYCN7JFN0eWxlfWAnO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIi8vIEZyb20gaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0LzFiNGYyZGE1NTI3ODMwMDg4ZTRkXHJcblxyXG4vLy8vXHJcbi8vIEkgaGF2ZSB3cml0dGVuIGEgbG90IG9mIGRpZmZlcmVudCBgc3RyLXJlcGxhY2VgIFNhc3MgZnVuY3Rpb25zIG92ZXJcclxuLy8gdGhlIG1vbnRocyB5ZXQgbm9uZSBvZiBteSB0cmllcyB3ZXJlIHN1Y2NlZWRpbmcgaW4gbWFraW5nIHRoZSBuZXcgc3Vic3RyaW5nXHJcbi8vIGFibGUgdG8gY29udGFpbiB0aGUgb25lIHRvIHJlcGxhY2UgKGUuZy4gYHN0ci1yZXBsYWNlKCRzdHIsICdhJywgJ2FiJylgKS5cclxuLy8gVGhhbmtzIHRvIFZhbMOpcmlhbiBHYWxsaWF0IChAdmFsZXJpYW5nYWxsaWF0KSwgSSBmaW5hbGx5IG1hbmFnZWQgdG8gYnVpbGRcclxuLy8gYSBidWxsZXRwcm9vZiBgc3RyLXJlcGxhY2VgIFNhc3MgZnVuY3Rpb24gdGhhdCBhbGxvd3MgbmV3IHN0cmluZyB0byBjb250YWluXHJcbi8vIHRoZSBvbGQgb25lLlxyXG4vLy8vXHJcblxyXG4vLy8gUmVwbGFjZSBgJHNlYXJjaGAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RyaW5nYFxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBJbml0aWFsIHN0cmluZ1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWFyY2ggLSBTdWJzdHJpbmcgdG8gcmVwbGFjZVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBVcGRhdGVkIHN0cmluZ1xyXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XHJcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XHJcblxyXG4gIEBpZiAkaW5kZXgge1xyXG4gICAgQHJldHVybiBzdHItc2xpY2UoJHN0cmluZywgMSwgJGluZGV4IC0gMSkgKyAkcmVwbGFjZSArIHN0ci1yZXBsYWNlKHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyBzdHItbGVuZ3RoKCRzZWFyY2gpKSwgJHNlYXJjaCwgJHJlcGxhY2UpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkc3RyaW5nO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gdXJsLWVuY29kZSgkc3RyaW5nKSB7XHJcbiAgJGVuY29kZU1hcDogKCclJzonJTI1JyxcclxuICAgICAgICAgICcgJzonJTIwJyxcclxuICAgICAgICAgICchJzonJTIxJyxcclxuICAgICAgICAgICdcXFwiJzonJTIyJyxcclxuICAgICAgICAgICcjJzonJTIzJyxcclxuICAgICAgICAgICckJzonJTI0JyxcclxuICAgICAgICAgICcmJzonJTI2JyxcclxuICAgICAgICAgICdcXCcnOiclMjcnLFxyXG4gICAgICAgICAgJygnOiclMjgnLFxyXG4gICAgICAgICAgJyknOiclMjknLFxyXG4gICAgICAgICAgJyonOiclMkEnLFxyXG4gICAgICAgICAgJysnOiclMkInLFxyXG4gICAgICAgICAgJywnOiclMkMnLFxyXG4gICAgICAgICAgJy0nOiclMkQnLFxyXG4gICAgICAgICAgJy4nOiclMkUnLFxyXG4gICAgICAgICAgJy8nOiclMkYnLFxyXG4gICAgICAgICAgJzonOiclM0EnLFxyXG4gICAgICAgICAgJzsnOiclM0InLFxyXG4gICAgICAgICAgJzwnOiclM0MnLFxyXG4gICAgICAgICAgJz0nOiclM0QnLFxyXG4gICAgICAgICAgJz4nOiclM0UnLFxyXG4gICAgICAgICAgJz8nOiclM0YnLFxyXG4gICAgICAgICAgJ0AnOiclNDAnLFxyXG4gICAgICAgICAgJ1snOiclNUInLFxyXG4gICAgICAgICAgJ1xcXFwnOiclNUMnLFxyXG4gICAgICAgICAgJ10nOiclNUQnLFxyXG4gICAgICAgICAgJ14nOiclNUUnLFxyXG4gICAgICAgICAgJ18nOiclNUYnLFxyXG4gICAgICAgICAgJ2AnOiclNjAnLFxyXG4gICAgICAgICAgJ3snOiclN0InLFxyXG4gICAgICAgICAgJ3wnOiclN0MnLFxyXG4gICAgICAgICAgJ30nOiclN0QnLFxyXG4gICAgICAgICAgJ34nOiclN0UnLFxyXG4gICAgICAgICAgJ8KiJzonJUEyJyxcclxuICAgICAgICAgICfCoyc6JyVBMycsXHJcbiAgICAgICAgICAnwqUnOiclQTUnLFxyXG4gICAgICAgICAgJ8KnJzonJUE3JyxcclxuICAgICAgICAgICfCqyc6JyVBQicsXHJcbiAgICAgICAgICAnwqwnOiclQUMnLFxyXG4gICAgICAgICAgJ8KvJzonJUFEJyxcclxuICAgICAgICAgICfCuic6JyVCMCcsXHJcbiAgICAgICAgICAnwrEnOiclQjEnLFxyXG4gICAgICAgICAgJ8KqJzonJUIyJyxcclxuICAgICAgICAgICfCtSc6JyVCNScsXHJcbiAgICAgICAgICAnwrsnOiclQkInLFxyXG4gICAgICAgICAgJ8K8JzonJUJDJyxcclxuICAgICAgICAgICfCvSc6JyVCRCcsXHJcbiAgICAgICAgICAnwr8nOiclQkYnLFxyXG4gICAgICAgICAgJ8OAJzonJUMwJyxcclxuICAgICAgICAgICfDgSc6JyVDMScsXHJcbiAgICAgICAgICAnw4InOiclQzInLFxyXG4gICAgICAgICAgJ8ODJzonJUMzJyxcclxuICAgICAgICAgICfDhCc6JyVDNCcsXHJcbiAgICAgICAgICAnw4UnOiclQzUnLFxyXG4gICAgICAgICAgJ8OGJzonJUM2JyxcclxuICAgICAgICAgICfDhyc6JyVDNycsXHJcbiAgICAgICAgICAnw4gnOiclQzgnLFxyXG4gICAgICAgICAgJ8OJJzonJUM5JyxcclxuICAgICAgICAgICfDiic6JyVDQScsXHJcbiAgICAgICAgICAnw4snOiclQ0InLFxyXG4gICAgICAgICAgJ8OMJzonJUNDJyxcclxuICAgICAgICAgICfDjSc6JyVDRCcsXHJcbiAgICAgICAgICAnw44nOiclQ0UnLFxyXG4gICAgICAgICAgJ8OPJzonJUNGJyxcclxuICAgICAgICAgICfDkCc6JyVEMCcsXHJcbiAgICAgICAgICAnw5EnOiclRDEnLFxyXG4gICAgICAgICAgJ8OSJzonJUQyJyxcclxuICAgICAgICAgICfDkyc6JyVEMycsXHJcbiAgICAgICAgICAnw5QnOiclRDQnLFxyXG4gICAgICAgICAgJ8OVJzonJUQ1JyxcclxuICAgICAgICAgICfDlic6JyVENicsXHJcbiAgICAgICAgICAnw5gnOiclRDgnLFxyXG4gICAgICAgICAgJ8OZJzonJUQ5JyxcclxuICAgICAgICAgICfDmic6JyVEQScsXHJcbiAgICAgICAgICAnw5snOiclREInLFxyXG4gICAgICAgICAgJ8OcJzonJURDJyxcclxuICAgICAgICAgICfDnSc6JyVERCcsXHJcbiAgICAgICAgICAnw54nOiclREUnLFxyXG4gICAgICAgICAgJ8OfJzonJURGJyxcclxuICAgICAgICAgICfDoCc6JyVFMCcsXHJcbiAgICAgICAgICAnw6EnOiclRTEnLFxyXG4gICAgICAgICAgJ8OiJzonJUUyJyxcclxuICAgICAgICAgICfDoyc6JyVFMycsXHJcbiAgICAgICAgICAnw6QnOiclRTQnLFxyXG4gICAgICAgICAgJ8OlJzonJUU1JyxcclxuICAgICAgICAgICfDpic6JyVFNicsXHJcbiAgICAgICAgICAnw6cnOiclRTcnLFxyXG4gICAgICAgICAgJ8OoJzonJUU4JyxcclxuICAgICAgICAgICfDqSc6JyVFOScsXHJcbiAgICAgICAgICAnw6onOiclRUEnLFxyXG4gICAgICAgICAgJ8OrJzonJUVCJyxcclxuICAgICAgICAgICfDrCc6JyVFQycsXHJcbiAgICAgICAgICAnw60nOiclRUQnLFxyXG4gICAgICAgICAgJ8OuJzonJUVFJyxcclxuICAgICAgICAgICfDryc6JyVFRicsXHJcbiAgICAgICAgICAnw7AnOiclRjAnLFxyXG4gICAgICAgICAgJ8OxJzonJUYxJyxcclxuICAgICAgICAgICfDsic6JyVGMicsXHJcbiAgICAgICAgICAnw7MnOiclRjMnLFxyXG4gICAgICAgICAgJ8O0JzonJUY0JyxcclxuICAgICAgICAgICfDtSc6JyVGNScsXHJcbiAgICAgICAgICAnw7YnOiclRjYnLFxyXG4gICAgICAgICAgJ8O3JzonJUY3JyxcclxuICAgICAgICAgICfDuCc6JyVGOCcsXHJcbiAgICAgICAgICAnw7knOiclRjknLFxyXG4gICAgICAgICAgJ8O6JzonJUZBJyxcclxuICAgICAgICAgICfDuyc6JyVGQicsXHJcbiAgICAgICAgICAnw7wnOiclRkMnLFxyXG4gICAgICAgICAgJ8O9JzonJUZEJyxcclxuICAgICAgICAgICfDvic6JyVGRScsXHJcbiAgICAgICAgICAnw78nOiclRkYnXHJcbiAgKTtcclxuXHJcbiAgQGVhY2ggJGNoYXIsICRjb2RlIGluICRlbmNvZGVNYXAge1xyXG4gICAgJHN0cmluZzogc3RyLXJlcGxhY2UoJHN0cmluZywgJGNoYXIsICRjb2RlKTtcclxuICB9XHJcbiAgQHJldHVybiAkc3RyaW5nO1xyXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFdyYXBwZXIgbWl4aW4gZm9yIG92ZXJyaWRpbmcgdGhlIGdsb2JhbCBjb250ZXh0cyBhcyBhIGJsb2NrXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AbWl4aW4gbGF5b3V0KCRncmlkOiBmYWxzZSwgJGd1dHRlcjogZmFsc2UsICRvdXRwdXQtc3R5bGU6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSkge1xyXG5cclxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ21hcCcge1xyXG4gICAgJGxheW91dDogJGdyaWQ7XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ2dyaWQnKSB7XHJcbiAgICAgICRncmlkOiBtYXAtZ2V0KCRsYXlvdXQsICdncmlkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdndXR0ZXInKSB7XHJcbiAgICAgICRndXR0ZXI6IG1hcC1nZXQoJGxheW91dCwgJ2d1dHRlcicpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnb3V0cHV0IHN0eWxlJykge1xyXG4gICAgICAkb3V0cHV0LXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdvdXRwdXQgc3R5bGUnKTtcclxuICAgIH1cclxuICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnb3V0cHV0Jykge1xyXG4gICAgICAkb3V0cHV0LXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdvdXRwdXQnKTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ2d1dHRlciBzdHlsZScpIHtcclxuICAgICAgJGd1dHRlci1zdHlsZTogbWFwLWdldCgkbGF5b3V0LCAnZ3V0dGVyIHN0eWxlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBQcml2YXRlIGhvbGRlciBmb3IgY3VycmVudCBnbG9iYWwgY29udGV4dFxyXG4gICRsYXlvdXQtcHJpdmF0ZS1ncmlkLWhvbGRlcjogc2dzLWdldCgnZ3JpZHMnKTtcclxuICAkbGF5b3V0LXByaXZhdGUtZ3V0dGVyLWhvbGRlcjogc2dzLWdldCgnZ3V0dGVycycpO1xyXG4gICRsYXlvdXQtcHJpdmF0ZS1vdXRwdXQtaG9sZGVyOiBzZ3MtZ2V0KCdvdXRwdXQnKTtcclxuICAkbGF5b3V0LXByaXZhdGUtZ3V0dGVyLXN0eWxlLWhvbGRlcjogc2dzLWdldCgnZ3V0dGVyIHN0eWxlcycpO1xyXG5cclxuICAvLyBPdmVyaWRlcyBjdXJyZW50IGdsb2JhbCBjb250ZXh0cywgYnV0IG9ubHkgaWYgbmVlZGVkXHJcbiAgQGlmICRncmlkICE9IGZhbHNlIHtcclxuICAgIEBpbmNsdWRlIHNncy1yZXNldCgnZ3JpZHMnKTtcclxuICAgIEBpZiB0eXBlLW9mKCRncmlkKSAhPSAnbWFwJyB7XHJcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2dyaWRzJywgKC0xcHg6ICRncmlkKSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGluY2x1ZGUgc2dzLWNoYW5nZSgnZ3JpZHMnLCAkZ3JpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpZiAkZ3V0dGVyICE9IGZhbHNlIHtcclxuICAgIEBpbmNsdWRlIHNncy1yZXNldCgnZ3V0dGVycycpO1xyXG4gICAgQGlmIHR5cGUtb2YoJGd1dHRlcikgIT0gJ21hcCcge1xyXG4gICAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXJzJywgKC0xcHg6ICRndXR0ZXIpKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXJzJywgJGd1dHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpZiAkb3V0cHV0LXN0eWxlICE9IGZhbHNlIHtcclxuICAgIEBpbmNsdWRlIHNncy1yZXNldCgnb3V0cHV0Jyk7XHJcbiAgICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdvdXRwdXQnLCAkb3V0cHV0LXN0eWxlKTtcclxuICB9XHJcbiAgQGlmICRndXR0ZXItc3R5bGUgIT0gZmFsc2Uge1xyXG4gICAgQGluY2x1ZGUgc2dzLXJlc2V0KCdndXR0ZXIgc3R5bGVzJyk7XHJcbiAgICBAaWYgdHlwZS1vZigkZ3V0dGVyLXN0eWxlKSAhPSAnbWFwJyB7XHJcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2d1dHRlciBzdHlsZXMnLCAoLTFweDogJGd1dHRlci1zdHlsZSkpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2d1dHRlciBzdHlsZXMnLCAkZ3V0dGVyLXN0eWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFsbCB0aGUgdGhpbmdzIVxyXG4gIEBjb250ZW50O1xyXG5cclxuICAvLyBSRXNldCBBTEwgdGhlIHNldHRpbmdzXHJcbiAgQGluY2x1ZGUgc2dzLXJlc2V0KCdncmlkcycpO1xyXG4gIEBpbmNsdWRlIHNncy1yZXNldCgnZ3V0dGVycycpO1xyXG4gIEBpbmNsdWRlIHNncy1yZXNldCgnb3V0cHV0Jyk7XHJcbiAgQGluY2x1ZGUgc2dzLXJlc2V0KCdndXR0ZXIgc3R5bGVzJyk7XHJcbiAgLy8gUmVzZXRzIGdsb2JhbCBjb250ZXh0c1xyXG4gIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ2dyaWRzJywgJGxheW91dC1wcml2YXRlLWdyaWQtaG9sZGVyKTtcclxuICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXJzJywgJGxheW91dC1wcml2YXRlLWd1dHRlci1ob2xkZXIpO1xyXG4gIEBpbmNsdWRlIHNncy1jaGFuZ2UoJ291dHB1dCcsICRsYXlvdXQtcHJpdmF0ZS1vdXRwdXQtaG9sZGVyKTtcclxuICBAaW5jbHVkZSBzZ3MtY2hhbmdlKCdndXR0ZXIgc3R5bGVzJywgJGxheW91dC1wcml2YXRlLWd1dHRlci1zdHlsZS1ob2xkZXIpO1xyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gTGF5b3V0IEF0XHJcbi8vIFdyYXBwZXIgbWl4aW4gZm9yIGEgY29tYmluZWQgQnJlYWtwb2ludC9MYXlvdXQgY2FsbFxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQG1peGluIGxheW91dC1hdCgkbGF5b3V0LCAkYnJlYWtwb2ludCkge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcclxuICAgIC8vIElmIGEgc2luZ2xlIHZhbHVlIGlzIHBhc3NlZCBpbiwgYXNzdW1lIGl0J3MgYSBncmlkXHJcbiAgICBAaWYgdHlwZS1vZigkbGF5b3V0KSAhPSBtYXAge1xyXG4gICAgICBAaW5jbHVkZSBsYXlvdXQoJGxheW91dCkge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAgIC8vIElmIGl0IGlzIGEgbWFwLCB3ZSd2ZSBnb3Qga2V5L3ZhbHVlcyB0byB3b3JrIHdpdGhcclxuICAgIEBlbHNlIHtcclxuICAgICAgJGdyaWQ6IGZhbHNlO1xyXG4gICAgICAkZ3V0dGVyOiBmYWxzZTtcclxuICAgICAgJG91dHB1dC1zdHlsZTogZmFsc2U7XHJcbiAgICAgICRndXR0ZXItc3R5bGU6IGZhbHNlO1xyXG5cclxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdncmlkJykge1xyXG4gICAgICAgICRncmlkOiBtYXAtZ2V0KCRsYXlvdXQsICdncmlkJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbGF5b3V0LCAnZ3V0dGVyJykge1xyXG4gICAgICAgICRndXR0ZXI6IG1hcC1nZXQoJGxheW91dCwgJ2d1dHRlcicpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ291dHB1dCBzdHlsZScpIHtcclxuICAgICAgICAkb3V0cHV0LXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdvdXRwdXQgc3R5bGUnKTtcclxuICAgICAgfVxyXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJGxheW91dCwgJ291dHB1dCcpIHtcclxuICAgICAgICAkb3V0cHV0LXN0eWxlOiBtYXAtZ2V0KCRsYXlvdXQsICdvdXRwdXQnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRsYXlvdXQsICdndXR0ZXIgc3R5bGUnKSB7XHJcbiAgICAgICAgJGd1dHRlci1zdHlsZTogbWFwLWdldCgkbGF5b3V0LCAnZ3V0dGVyIHN0eWxlJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIGxheW91dCgkZ3JpZCwgJGd1dHRlciwgJG91dHB1dC1zdHlsZSwgJGd1dHRlci1zdHlsZSkge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiQGltcG9ydCBcImxhbmd1YWdlL3BhcnNlLWxpc3RcIjtcclxuQGltcG9ydCBcImxhbmd1YWdlL3BhcnNlLWFkZFwiO1xyXG5AaW1wb3J0IFwibGFuZ3VhZ2Uvc3BhblwiOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBQYXJzZSBuYXR1cmFsIGxhbmd1YWdlIHN0cmluZ1xyXG4vL1xyXG4vLyBSZXRyaWV2ZSB2YWx1ZXMgZnJvbSB0aGUgbmF0dXJhbCBsYW5ndWFnZSBzdHJpbmcuXHJcbi8vIHBhcnNlLXN0cmluZygkdmFyLCAkbGlzdClcclxuLy8gICR2YXIgIDogPHN0cmluZz5cclxuLy8gICAgICAgIC0gJ2F0Jy8nc3BhbicvJ29mJyBvciBhbnkgb3RoZXIga2V5d29yZHMuXHJcbi8vICAgICAgICAtICdzcGFuJyBxdWVyaWVzIHRoZSB1bnByZWZpeGVkIHNwYW4gZGVjbGFyYXRpb24uXHJcbi8vICAgICAgICAtICdhdCcgY2FuIGFsc28gcXVlcnkgZmlyc3QsIGxhc3QsIGFscGhhLCBhbmQgb21lZ2EuXHJcbi8vICAgICAgICAtICdncmlkJyB3aWxsIHJldHVybiB0aGUgc2FtZSBhcyAnb2YnXHJcbi8vICAkbGlzdCA6IDxsaXN0PlxyXG4vLyAgICAgICAgLSBBIGxpc3QgbGlrZSB0aGlzOiBsYXN0IDIgb2YgKDEgMSAyKSBwdXNoIDFcclxuLy9cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBmdW5jdGlvbiBwYXJzZS1zcGFuLWxpc3QoJHZhciwgJGxpc3QpIHtcclxuXHJcbiAgJGZvdW5kOiBmYWxzZTtcclxuXHJcbiAgJGdyaWQ6ICgpO1xyXG5cclxuICAvLyBMb29wIHRocm91Z2ggbGlzdC5cclxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICAvLyBpZiAnc3BhbicgLSByZXR1cm4gdGhlIGZpcnN0IG51bWVyaWMuXHJcbiAgICAvLyBpZiBrZXl3b3JkIHdhcyBmb3VuZCAtIHJldHVybiB0aGUgZm9sbG93aW5nIGl0ZW0uXHJcbiAgICBAaWYgKHR5cGUtb2YoJGl0ZW0pID09IG51bWJlciBhbmQgJHZhciA9PSBzcGFuIGFuZCAkZm91bmQgIT0gJ2dyaWQnKSBvciAkZm91bmQgPT0gdHJ1ZSB7XHJcblxyXG4gICAgICAvLyBAaWYgJGZvdW5kID09IHRydWVcclxuICAgICAgQHJldHVybiAkaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIEdyaWRzXHJcbiAgICBAZWxzZSBpZiAoJGl0ZW0gPT0gJHZhciBvciAkaXRlbSA9PSAnZ3JpZCcgb3IgJGl0ZW0gPT0gJ29mJykgYW5kICgkdmFyID09ICdvZicgb3IgJHZhciA9PSAnZ3JpZCcpIHtcclxuICAgICAgJGZvdW5kOiAnZ3JpZCc7XHJcbiAgICB9IEBlbHNlIGlmICRmb3VuZCA9PSAnZ3JpZCcge1xyXG4gICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbnVtYmVyIHtcclxuICAgICAgICAkZ3JpZDogYXBwZW5kKCRncmlkLCAkaXRlbSwgJ3NwYWNlJyk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIEByZXR1cm4gJGdyaWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAgIC8vIEFueSBrZXl3b3JkIC0gcmV0dXJuIHRoZSBmb2xsb3dpbmcgdmFsdWUuXHJcbiAgICBAZWxzZSBpZiAkaXRlbSA9PSAkdmFyIHtcclxuICAgICAgJGZvdW5kOiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gV2Fzbid0IGZvdW5kLlxyXG4gIEByZXR1cm4gZmFsc2U7XHJcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gUGFyc2UgYWRkIHN0cmluZ1xyXG4vL1xyXG4vLyBSZXRyaWV2ZSBhZGQgYW5kIG1lZGlhIHF1ZXJ5IHZhbHVlcyBmcm9tIGEgZGVmaW5pdGlvblxyXG4vLyBwYXJzZS1hZGQoJGRlZmluaXRpb24pXHJcbi8vICAkZGVmaW5pdGlvbiA6IDxsaXN0PlxyXG4vLyAgICAgICAgLSBBIGxpc3QgbGlrZTogLjI1IGF0IDMwMHB4XHJcbi8vXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtYWRkKCRkZWZpbml0aW9uKSB7XHJcbiAgJHBhcnNlLWZpbmQ6ICgpO1xyXG4gICRwYXJzZS1tcTogbnVsbDtcclxuICAkcGFyc2UtbXEtZmluZDogZmFsc2U7XHJcbiAgJE1vYmlsZS1GaXJzdDogc2dzLWdldCgnbW9iaWxlIGZpcnN0Jyk7XHJcblxyXG4gIEBlYWNoICRpdGVtIGluICRkZWZpbml0aW9uIHtcclxuICAgIEBpZiAkaXRlbSAhPSAnYXQnIGFuZCAkcGFyc2UtbXEtZmluZCAhPSB0cnVlIHtcclxuICAgICAgJHBhcnNlLWZpbmQ6IGFwcGVuZCgkcGFyc2UtZmluZCwgJGl0ZW0sICdzcGFjZScpO1xyXG4gICAgfSBAZWxzZSBpZiAkaXRlbSA9PSAnYXQnIHtcclxuICAgICAgJHBhcnNlLW1xLWZpbmQ6IHRydWU7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHBhcnNlLW1xOiAkaXRlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkcGFyc2UtbXEge1xyXG4gICAgQGlmIG5vdCBmdW5jdGlvbi1leGlzdHMoYnJlYWtwb2ludCkge1xyXG4gICAgICBAd2FybiBcIlJlc3BvbnNpdmUgY29udGV4dHMgcmVxdWlyZSBCcmVha3BvaW50IChodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL2JyZWFrcG9pbnQpLiBQbGVhc2UgZW5zdXJlIHRoYXQgQnJlYWtwb2ludCBpcyBpbXBvcnRlZCBhbmQgYXZhaWxhYmxlIGZvciBTaW5ndWxhcml0eSB0byB1c2UuIENvbnRleHQgc2V0IHRvIC0xcHguXCI7XHJcbiAgICAgICRwYXJzZS1tcTogLTFweDtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkYnJlYWtwb2ludC1wYXJzZTogYnJlYWtwb2ludCgkcGFyc2UtbXEpO1xyXG4gICAgICAkYnJlYWtwb2ludC1wYXJzZTogbWFwLWdldCgkYnJlYWtwb2ludC1wYXJzZSwgJ2NvbnRleHQgaG9sZGVyJyk7XHJcbiAgICAgICRicmVha3BvaW50LW1xOiBudWxsO1xyXG4gICAgICBAaWYgJE1vYmlsZS1GaXJzdCB7XHJcbiAgICAgICAgJGJyZWFrcG9pbnQtbXE6IG1hcC1nZXQoJGJyZWFrcG9pbnQtcGFyc2UsICdtaW4td2lkdGgnKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJGJyZWFrcG9pbnQtbXE6IG1hcC1nZXQoJGJyZWFrcG9pbnQtcGFyc2UsICdtYXgtd2lkdGgnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludC1tcSkgPiAxIHtcclxuICAgICAgICBAd2FybiBcIlJlc3BvbnNpdmUgY29udGV4dHMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIGBvcmAgcXVlcmllcyBhcyB3aGljaCBxdWVyeSB0byB1c2UgaXMgYW1iaWd1b3VzLiBQbGVhc2Ugb25seSB1c2Ugc2luZ2xlIGNvbnRleHQgcXVlcmllcy4gQ29udGV4dCBzZXQgdG8gLTFweC5cIjtcclxuICAgICAgICAkcGFyc2UtbXE6IC0xcHg7XHJcbiAgICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCRicmVha3BvaW50LW1xKSA8IDEge1xyXG4gICAgICAgIEB3YXJuIFwiTm8gXCIgKyBpZigkTW9iaWxlLUZpcnN0LCAnbWluLXdpZHRoJywgJ21heC13aWR0aCcpICsgJyBjb250ZXh0IGZvdW5kLiBQbGVhc2UgdXNlIGEgbWVkaWEgcXVlcnkgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0LiBDb250ZXh0IHNldCB0byAtMXB4Lic7XHJcbiAgICAgICAgJHBhcnNlLW1xOiAtMXB4O1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkcGFyc2UtbXE6IG50aCgkYnJlYWtwb2ludC1tcSwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkcGFyc2UtbXEgYW5kIHVuaXQoJHBhcnNlLW1xKSA9PSAnZW0nIHtcclxuICAgICRwYXJzZS1tcTogJHBhcnNlLW1xIC8gMWVtICogMTZweDtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gKCRwYXJzZS1maW5kICRwYXJzZS1tcSk7XHJcbn1cclxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIFwiTmF0dXJhbCBMYW5ndWFnZVwiIFBhcnNpbmdcclxuLy9cclxuLy8gS2V5d29yZHM6XHJcbi8vICBzcGFuOiAgICAgQ29sdW1uIFNwYW5cclxuLy8gIGF0OiAgICAgICBDb2x1bW4gTG9jYXRpb25cclxuLy8gIG9mOiAgICAgICBDb250ZXh0XHJcbi8vICBndXR0ZXJzOiAgR3V0dGVyc1xyXG4vLyAgb3V0cHV0OiAgIE91dHB1dFxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQG1peGluIHNwYW4oJGlucHV0KSB7XHJcbiAgJHNwYW46IG50aCgkaW5wdXQsIDEpO1xyXG5cclxuICAkbG9jYXRpb246IHBhcnNlLXNwYW4tbGlzdCgnYXQnLCAkaW5wdXQpO1xyXG4gICRjb250ZXh0OiBwYXJzZS1zcGFuLWxpc3QoJ29mJywgJGlucHV0KTtcclxuICAkZ3V0dGVyOiBwYXJzZS1zcGFuLWxpc3QoJ2d1dHRlcnMnLCAkaW5wdXQpO1xyXG4gICRvdXRwdXQ6IHBhcnNlLXNwYW4tbGlzdCgnb3V0cHV0JywgJGlucHV0KTtcclxuXHJcbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRzcGFuLCAkbG9jYXRpb24sICRjb250ZXh0LCAkZ3V0dGVyLCAkb3V0cHV0KVxyXG59IiwiQGltcG9ydCBcIm1hdGgvY29sdW1uc1wiO1xyXG5AaW1wb3J0IFwibWF0aC9ndXR0ZXJzXCI7XHJcbkBpbXBvcnQgXCJtYXRoL2NvbnRleHRcIjtcclxuQGltcG9ydCBcIm1hdGgvZ3JpZFwiOyIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBGaW5kIHdpZHRoLCBpbiBwZXJjZW50YWdlcywgb2YgdGhlIGNvbHVtbiBzcGFuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gY29sdW1uLXNwYW4oJHNwYW4sICRsb2NhdGlvbiwgJGdyaWQ6IG51bGwsICRndXR0ZXI6IG51bGwsICRndXR0ZXItc3R5bGU6IG51bGwpIHtcclxuICAvLyBGaW5kIHRoZSBncmlkIGFuZCBndXR0ZXJzXHJcbiAgJGdyaWQ6IGZpbmQtZ3JpZCgkZ3JpZCk7XHJcbiAgJGd1dHRlcjogZmluZC1ndXR0ZXIoJGd1dHRlcik7XHJcbiAgJGd1dHRlci1zdHlsZTogZmluZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZSk7XHJcblxyXG4gIEBpZiBmaXhlZC1ndXR0ZXIoJGdyaWQsICRndXR0ZXIsICRndXR0ZXItc3R5bGUpIHtcclxuICAgICRndXR0ZXI6IDA7XHJcbiAgfVxyXG5cclxuICAvLyBAZGVidWcgJGdyaWQ7XHJcbiAgLy8gQGRlYnVnICRndXR0ZXI7XHJcblxyXG4gIC8vIENvbWJpbmUgdGhlIGdyaWQgYW5kIGd1dHRlcnNcclxuICAkZ3JpZC1hbmQtZ3V0dGVyczogY29sdW1uLXN1bSgkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSk7XHJcblxyXG4gIC8vIEBkZWJ1ZyAkZ3JpZC1hbmQtZ3V0dGVycztcclxuXHJcbiAgLy8gRXF1YWwgd2lkdGggZ3JpZCBhcmUgZWFzeSEgRGVhbCB3aXRoIHRoZW0hXHJcbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIG9yIGxlbmd0aCgkZ3JpZCkgPT0gMSB7XHJcbiAgICAkc3Bhbi1hbmQtZ3V0dGVyczogJHNwYW4gKyAkZ3V0dGVyICogKCRzcGFuIC0gMSk7XHJcbiAgICBAcmV0dXJuICRzcGFuLWFuZC1ndXR0ZXJzIC8gJGdyaWQtYW5kLWd1dHRlcnMgKiAxMDAlO1xyXG4gIH1cclxuICAgIC8vIEFzeW1tZXRyaWMgbGlzdHMgYXJlIGhhcmRlciwgc28gd2UncmUgZ29pbmcgdG8gdHJlYXQgdGhlbSBhcyB0aGVpciBvd24gZ3JpZFxyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGdyaWQpID09ICdsaXN0JyBvciBsZW5ndGgoJGdyaWQpID4gMSB7XHJcbiAgICAkc3Bhbi1hbmQtZ3V0dGVyczogMDtcclxuXHJcbiAgICBAaWYgJGxvY2F0aW9uID09IDEgYW5kICRzcGFuID49IDEge1xyXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRzcGFuIHtcclxuICAgICAgICAkc3Bhbi1hbmQtZ3V0dGVyczogJHNwYW4tYW5kLWd1dHRlcnMgKyBudGgoJGdyaWQsICRpKSArICRndXR0ZXI7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkdG90YWw6ICRsb2NhdGlvbiArICRzcGFuIC0gMTtcclxuICAgICAgQGlmICR0b3RhbCAhPSAwIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gJGxvY2F0aW9uIHRocm91Z2ggJHRvdGFsIHtcclxuICAgICAgICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAkc3Bhbi1hbmQtZ3V0dGVycyArIG50aCgkZ3JpZCwgJGkpICsgJGd1dHRlcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICRzcGFuLWFuZC1ndXR0ZXJzOiAkc3Bhbi1hbmQtZ3V0dGVycyAtICRndXR0ZXI7XHJcblxyXG4gICAgQHJldHVybiAkc3Bhbi1hbmQtZ3V0dGVycyAvICRncmlkLWFuZC1ndXR0ZXJzICogMTAwJTtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiQ2FuJ3QgZmluZCBhIHdvcmtpbmcgc2V0IG9mIGdyaWQhIFRoYXQncyB0ZXJyaWJsZSFcIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gRmluZCB0aGUgdG90YWwgc3VtIG9mIHRoZSBncmlkXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gY29sdW1uLXN1bSgkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSkge1xyXG4gICRzcGxpdDogaWYoaW5kZXgoJGd1dHRlci1zdHlsZSwgJ3NwbGl0JyksIHRydWUsIGZhbHNlKTtcclxuXHJcbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIG9yIGxlbmd0aCgkZ3JpZCkgPT0gMSB7XHJcbiAgICBAaWYgJHNwbGl0IHtcclxuICAgICAgQHJldHVybiBudGgoJGdyaWQsIDEpICsgKChjb2x1bW4tY291bnQobnRoKCRncmlkLCAxKSkpICogbnRoKCRndXR0ZXIsIDEpKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAcmV0dXJuIG50aCgkZ3JpZCwgMSkgKyAoKGNvbHVtbi1jb3VudChudGgoJGdyaWQsIDEpKSAtIDEpICogbnRoKCRndXR0ZXIsIDEpKTtcclxuICAgIH1cclxuXHJcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcge1xyXG4gICAgJHN1bTogMDtcclxuICAgIEBlYWNoICRjb2x1bW4gaW4gJGdyaWQge1xyXG4gICAgICAkc3VtOiAkc3VtICsgbnRoKCRjb2x1bW4sIDEpO1xyXG4gICAgfVxyXG4gICAgQGlmICRzcGxpdCB7XHJcbiAgICAgICRzdW06ICRzdW0gKyAoY29sdW1uLWNvdW50KCRncmlkKSkgKiBudGgoJGd1dHRlciwgMSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHN1bTogJHN1bSArIChjb2x1bW4tY291bnQoJGdyaWQpIC0gMSkgKiBudGgoJGd1dHRlciwgMSk7XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRzdW07XHJcbiAgfVxyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gRmluZCB0aGUgbnVtYmVyIG9mIGdyaWRcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBmdW5jdGlvbiBjb2x1bW4tY291bnQoJGdyaWQpIHtcclxuICBAaWYgdHlwZS1vZigkZ3JpZCkgPT0gJ251bWJlcicge1xyXG4gICAgQHJldHVybiAkZ3JpZDtcclxuICB9XHJcbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdsaXN0JyB7XHJcbiAgICBAaWYgbGVuZ3RoKCRncmlkKSA9PSAxIHtcclxuICAgICAgQHJldHVybiBudGgoJGdyaWQsIDEpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEByZXR1cm4gbGVuZ3RoKCRncmlkKTtcclxuICAgIH1cclxuICB9XHJcbn0iLCJAZnVuY3Rpb24gZ3V0dGVyLXNwYW4oJGd1dHRlcjogZmFsc2UsICRncmlkOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UpIHtcclxuXHJcbiAgLy8gRmluZCB0aGUgY29sdW1ucyBhbmQgZ3V0dGVyc1xyXG4gICRncmlkOiBmaW5kLWdyaWQoJGdyaWQpO1xyXG4gICRndXR0ZXI6IGZpbmQtZ3V0dGVyKCRndXR0ZXIpO1xyXG4gICRndXR0ZXItc3R5bGU6IGZpbmQtZ3V0dGVyLXN0eWxlKCRndXR0ZXItc3R5bGUpO1xyXG5cclxuICBAaWYgZml4ZWQtZ3V0dGVyKCRncmlkLCAkZ3V0dGVyLCAkZ3V0dGVyLXN0eWxlKSB7XHJcbiAgICBAcmV0dXJuIG50aCgkZ3V0dGVyLCAxKTtcclxuICB9XHJcblxyXG4gIC8vIENvbWJpbmUgdGhlIGNvbHVtbnMgYW5kIGd1dHRlcnNcclxuICAkZ3JpZC1hbmQtZ3V0dGVyczogY29sdW1uLXN1bSgkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSk7XHJcblxyXG4gIEByZXR1cm4gKG50aCgkZ3V0dGVyLCAxKSAvICRncmlkLWFuZC1ndXR0ZXJzKSAqIDEwMCVcclxufSIsIkBmdW5jdGlvbiBjb250ZXh0KCRwcmltYXJ5LCAkc2Vjb25kYXJ5KSB7XHJcbiAgQHJldHVybiAoJHByaW1hcnkgLyAkc2Vjb25kYXJ5KSAqIDEwMCU7XHJcbn0iLCJAZnVuY3Rpb24gZ3JpZC1zcGFuKCRzcGFuLCAkbG9jYXRpb24sICRncmlkOiBmYWxzZSwgJGd1dHRlcjogZmFsc2UsICRndXR0ZXItc3R5bGU6IGZhbHNlKSB7XHJcbiAgQHJldHVybiBjb2x1bW4tc3Bhbigkc3BhbiwgJGxvY2F0aW9uLCAkZ3JpZCwgJGd1dHRlciwgJGd1dHRlci1zdHlsZSkgKyBndXR0ZXItc3BhbigkZ3V0dGVyLCAkZ3JpZCwgJGd1dHRlci1zdHlsZSk7XHJcbn0iLCJAaW1wb3J0IFwiZ3JpZHMvYWRkXCI7XHJcbkBpbXBvcnQgXCJncmlkcy9maW5kXCI7IiwiLy8gQWNjZXB0cyBhIGdyaWQgZGVmaW5pdGlvbiBpbiB0aGUgaHVtYW4tcmVhZGFibGUgZm9ybWF0LiBDb252ZXJ0cyBpdCB0byB0aGUgaW50ZXJuYWwgZm9ybWF0LFxyXG4vLyBhcHBlbmRzIGl0IHRvIGEgbGlzdCBvZiBncmlkcyBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIGxpc3QuXHJcbi8vXHJcbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyBhIG5ldyBsaXN0LCBpdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHNvdXJjZSBsaXN0LlxyXG4vL1xyXG4vLyBhZGQtZ3JpZCgkZ3JpZC1kZWZpbml0aW9uLCAkYXBwZW5kLXRvLWxpc3QpXHJcbi8vIC0gJGdyaWQtZGVmaW5pdGlvbiA6IDxkZWZpbml0aW9uPiAgU2VlIGRvY3VtZW50YXRpb24gZm9yIHN5bnRheDpcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL1Npbmd1bGFyaXR5L3dpa2kvQ3JlYXRpbmctR3JpZHNcclxuLy8gLSAkYXBwZW5kLXRvLWxpc3QgIDogW2xpc3RdICAgICAgICBBIGxpc3QgdG8gYXBwZW5kIHRvLlxyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICRncmlkcyBpZiBub25lIGlzIHNwZWNpZmllZC5cclxuQGZ1bmN0aW9uIGFkZC1ncmlkKCRncmlkLWRlZmluaXRpb24sICRjdXN0b20tbWFwOiBmYWxzZSkge1xyXG4gICRQYXJzZWQ6IHBhcnNlLWFkZCgkZ3JpZC1kZWZpbml0aW9uKTsgLy8gUGFyc2VzIGdyaWQgZGVmaW5pdGlvbiB0byBncmlkL2JyZWFrcG9pbnRcclxuICAkR3JpZDogbnRoKCRQYXJzZWQsIDEpOyAvLyBFLiBnLiBgKDxncmlkPilgLlxyXG4gICRCcmVha3BvaW50OiBudGgoJFBhcnNlZCwgMik7IC8vIEVpdGhlciBgKDxicmVha3BvaW50PilgIG9yIGZhbHNlLlxyXG4gICRNb2JpbGUtRmlyc3Q6IHNncy1nZXQoJ21vYmlsZSBmaXJzdCcpO1xyXG4gICRHcmlkLU1hcDogKCk7XHJcblxyXG4gIC8vIERldGVybWluZSBpZiBhIGN1c3RvbSBtYXAgb3IgdGhlIGRlZmF1bHQgbWFwcyBzaG91bGQgYmUgdXNlZC5cclxuICBAaWYgJGN1c3RvbS1tYXAge1xyXG4gICAgJEdyaWQtTWFwOiAkY3VzdG9tLW1hcDtcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiBzZ3MtaGFzKCdncmlkcycpIHtcclxuICAgICAgJEdyaWQtTWFwOiBzZ3MtZ2V0KCdncmlkcycpO1xyXG4gICAgfVxyXG4gIH1cclxuICAkR3JpZC1LZXktTGVuZ3RoOiBsZW5ndGgobWFwLWtleXMoJEdyaWQtTWFwKSk7XHJcblxyXG4gIC8vIENoZWNrIHdoZXRoZXIgdGhlIGRlZmluaXRpb24gd2lsbCBiZSB0aGUgZmlyc3Qgb25lIGluIHRoZSBsaXN0XHJcbiAgLy8gYW5kIHdoZXRoZXIgaXQgaGFzIG5vIGJyZWFrcG9pbnQgc3BlY2lmaWVkLlxyXG4gIEBpZiAkQnJlYWtwb2ludCA9PSBudWxsIHtcclxuICAgIC8vIFJldHVybnMgdGhlIGZpcnN0IGl0ZW0gb2YgdGhlIGxpc3QsIGUuIGcuIGAoPGdyaWQ+KWBcclxuICAgICRHcmlkLU1hcDogbWFwLW1lcmdlKCRHcmlkLU1hcCwgKC0xcHg6ICRHcmlkKSk7XHJcbiAgfVxyXG4gICAgLy8gSUYgdGhlIGxpc3QgaXMgaW5pdGlhdGVkIHdpdGggYSBsaXN0IG9mIGdyaWQgY29sdW1ucyBuZWVkIHRvIHN0YXJ0IG9mZlxyXG4gICAgLy8gYSBjb21tYSBzZXByYXRlZCBsaXN0LlxyXG4gIEBlbHNlIHtcclxuICAgIEBpZiBub3QgKG1hcC1oYXMta2V5KCRHcmlkLU1hcCwgLTFweCkpIHtcclxuICAgICAgJEdyaWQtTWFwOiBtYXAtbWVyZ2UoJEdyaWQtTWFwLCBtYXAtZ2V0KCRTaW5ndWxhcml0eS1TZXR0aW5ncywgJ2dyaWRzJykpO1xyXG4gICAgfVxyXG4gICAgJEdyaWQtTWFwOiBtYXAtbWVyZ2UoJEdyaWQtTWFwLCAoJEJyZWFrcG9pbnQ6ICRHcmlkKSk7XHJcbiAgfVxyXG5cclxuICAkR3JpZC1NYXA6IHNvcnQtbWFwKCRHcmlkLU1hcCwgbm90ICRNb2JpbGUtRmlyc3QpO1xyXG5cclxuICBAcmV0dXJuICRHcmlkLU1hcDtcclxufVxyXG5cclxuQG1peGluIGFkZC1ncmlkKCRncmlkLWRlZmluaXRpb24pIHtcclxuICAkQWRkLUdyaWQ6IGFkZC1ncmlkKCRncmlkLWRlZmluaXRpb24pO1xyXG4gICRIT0xERVI6IHNncy1zZXQoJ2dyaWRzJywgJEFkZC1HcmlkKTtcclxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBGaW5kIEdyaWRcclxuLy9cclxuLy8gRmluZHMgdGhlIGdyaWQgdGhhdCB5b3UgYXJlIG9uLlxyXG4vLyBGcm9tIFNpbmd1bGFyaXR5XHJcbi8vIE11c3QgYmUgdXNpbmcgQnJlYWtwb2ludCB0byB3b3JrIHByb3Blcmx5XHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AZnVuY3Rpb24gZmluZC1ncmlkKCR1c2VyLWNvbHVtbnM6IG51bGwpIHtcclxuXHJcbiAgLy8gV2Ugc3VwcGx5IGEgZGVmYXVsdCBpZiB0aGUgdXNlciBoYXNuJ3Qgc2V0IGFueSBncmlkcyBhbmQgaGFzbid0IHBhc3NlZCBpbiBhIGN1c3RvbSBjb2x1bW4gc2V0XHJcbiAgLy8gVGhlIGRlZmF1bHQgc3VwcGxpZWQgaXMgYmFzZWQgb24gb3JpZ2luYWwgU3VzeSBvcHRpb25zXHJcbiAgJEdyaWRzOiBzZ3MtZ2V0KCdncmlkcycpO1xyXG5cclxuICAkRm91bmQ6IGZpbmQtb2JqZWN0KCRHcmlkcywgJHVzZXItY29sdW1ucyk7XHJcblxyXG4gIEBpZiBsZW5ndGgoJEZvdW5kKSA9PSAxIHtcclxuICAgICRGb3VuZDogbnRoKCRGb3VuZCwgMSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRGb3VuZDtcclxufSIsIkBpbXBvcnQgXCJndXR0ZXJzL2FkZFwiO1xyXG5AaW1wb3J0IFwiZ3V0dGVycy9maW5kXCI7IiwiLy8gQWNjZXB0cyBhIGd1dHRlciBkZWZpbml0aW9uIGluIHRoZSBodW1hbi1yZWFkYWJsZSBmb3JtYXQuIENvbnZlcnRzIGl0IHRvIHRoZSBpbnRlcm5hbCBmb3JtYXQsXHJcbi8vIGFwcGVuZHMgaXQgdG8gYSBsaXN0IG9mIGd1dHRlciBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIGxpc3QuXHJcbi8vXHJcbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyBhIG5ldyBsaXN0LCBpdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHNvdXJjZSBsaXN0LlxyXG4vL1xyXG4vLyBhZGQtZ3V0dGVyKCRHdXR0ZXItZGVmaW5pdGlvbiwgJGFwcGVuZC10by1saXN0KVxyXG4vLyAtICRndXR0ZXItZGVmaW5pdGlvbiA6IDxkZWZpbml0aW9uPiAgU2VlIGRvY3VtZW50YXRpb24gZm9yIHN5bnRheDpcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvU2luZ3VsYXJpdHkvd2lraS9DcmVhdGluZy1HdXR0ZXJzXHJcbi8vIC0gJGFwcGVuZC10by1saXN0ICAgIDogW2xpc3RdICAgICAgICBBIGxpc3QgdG8gYXBwZW5kIHRvLlxyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gJGd1dHRlcnMgaWYgbm9uZSBpcyBzcGVjaWZpZWQuXHJcbkBmdW5jdGlvbiBhZGQtZ3V0dGVyKCRndXR0ZXItZGVmaW5pdGlvbiwgJGN1c3RvbS1tYXA6IGZhbHNlKSB7XHJcbiAgJFBhcnNlZDogcGFyc2UtYWRkKCRndXR0ZXItZGVmaW5pdGlvbik7IC8vIFBhcnNlcyBHdXR0ZXIgZGVmaW5pdGlvbiB0byBHdXR0ZXIvYnJlYWtwb2ludFxyXG4gICRHdXR0ZXI6IG50aCgkUGFyc2VkLCAxKTsgLy8gRS4gZy4gYCg8R3V0dGVyPilgLlxyXG4gICRCcmVha3BvaW50OiBudGgoJFBhcnNlZCwgMik7IC8vIEVpdGhlciBgKDxicmVha3BvaW50PilgIG9yIGZhbHNlLlxyXG4gICRNb2JpbGUtRmlyc3Q6IHNncy1nZXQoJ21vYmlsZSBmaXJzdCcpO1xyXG4gICRHdXR0ZXItTWFwOiAoKTtcclxuXHJcbiAgLy8gRGV0ZXJtaW5lIGlmIGEgY3VzdG9tIG1hcCBvciB0aGUgZGVmYXVsdCBtYXBzIHNob3VsZCBiZSB1c2VkLlxyXG4gIEBpZiAkY3VzdG9tLW1hcCB7XHJcbiAgICAkR3V0dGVyLU1hcDogJGN1c3RvbS1tYXA7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAaWYgc2dzLWhhcygnZ3V0dGVycycpIHtcclxuICAgICAgJEd1dHRlci1NYXA6IHNncy1nZXQoJ2d1dHRlcnMnKTtcclxuICAgIH1cclxuICB9XHJcbiAgJEd1dHRlci1LZXktTGVuZ3RoOiBsZW5ndGgobWFwLWtleXMoJEd1dHRlci1NYXApKTtcclxuXHJcbiAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZGVmaW5pdGlvbiB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGxpc3RcclxuICAvLyBhbmQgd2hldGhlciBpdCBoYXMgbm8gYnJlYWtwb2ludCBzcGVjaWZpZWQuXHJcbiAgQGlmICRCcmVha3BvaW50ID09IG51bGwge1xyXG4gICAgLy8gUmV0dXJucyB0aGUgZmlyc3QgaXRlbSBvZiB0aGUgbGlzdCwgZS4gZy4gYCg8R3V0dGVyPilgXHJcbiAgICAkR3V0dGVyLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItTWFwLCAoLTFweDogJEd1dHRlcikpO1xyXG4gIH1cclxuICAgIC8vIElGIHRoZSBsaXN0IGlzIGluaXRpYXRlZCB3aXRoIGEgbGlzdCBvZiBHdXR0ZXIgY29sdW1ucyBuZWVkIHRvIHN0YXJ0IG9mZlxyXG4gICAgLy8gYSBjb21tYSBzZXByYXRlZCBsaXN0LlxyXG4gIEBlbHNlIHtcclxuICAgIEBpZiBub3QgKG1hcC1oYXMta2V5KCRHdXR0ZXItTWFwLCAtMXB4KSkge1xyXG4gICAgICAkR3V0dGVyLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItTWFwLCBtYXAtZ2V0KCRTaW5ndWxhcml0eS1TZXR0aW5ncywgJ2d1dHRlcnMnKSk7XHJcbiAgICB9XHJcbiAgICAkR3V0dGVyLU1hcDogbWFwLW1lcmdlKCRHdXR0ZXItTWFwLCAoJEJyZWFrcG9pbnQ6ICRHdXR0ZXIpKTtcclxuICB9XHJcblxyXG4gICRHdXR0ZXItTWFwOiBzb3J0LW1hcCgkR3V0dGVyLU1hcCwgbm90ICRNb2JpbGUtRmlyc3QpO1xyXG5cclxuICBAcmV0dXJuICRHdXR0ZXItTWFwO1xyXG59XHJcblxyXG5AbWl4aW4gYWRkLWd1dHRlcigkZ3V0dGVyLWRlZmluaXRpb24pIHtcclxuICAkQWRkLUd1dHRlcjogYWRkLWd1dHRlcigkZ3V0dGVyLWRlZmluaXRpb24pO1xyXG4gICRIT0xERVI6IHNncy1zZXQoJ2d1dHRlcnMnLCAkQWRkLUd1dHRlcik7XHJcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gRmluZCBndXR0ZXJcclxuLy9cclxuLy8gRmluZHMgdGhlIGd1dHRlciB0aGF0IHlvdSBhcmUgb24uXHJcbi8vIEZyb20gU2luZ3VsYXJpdHlcclxuLy8gTXVzdCBiZSB1c2luZyBCcmVha3BvaW50IHRvIHdvcmsgcHJvcGVybHlcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbkBmdW5jdGlvbiBmaW5kLWd1dHRlcigkdXNlci1ndXR0ZXJzOiBudWxsKSB7XHJcblxyXG4gIC8vIFdlIHN1cHBseSBhIGRlZmF1bHQgaWYgdGhlIHVzZXIgaGFzbid0IHNldCBhbnkgZ3V0dGVycyBhbmQgaGFzbid0IHBhc3NlZCBpbiBhIGN1c3RvbSBjb2x1bW4gc2V0XHJcbiAgLy8gVGhlIGRlZmF1bHQgc3VwcGxpZWQgaXMgYmFzZWQgb24gb3JpZ2luYWwgU3VzeSBvcHRpb25zXHJcbiAgJEd1dHRlcnM6IHNncy1nZXQoJ2d1dHRlcnMnKTtcclxuXHJcbiAgJEZvdW5kOiBmaW5kLW9iamVjdCgkR3V0dGVycywgJHVzZXItZ3V0dGVycyk7XHJcblxyXG4gIEBpZiBsZW5ndGgoJEZvdW5kKSA9PSAxIHtcclxuICAgICRGb3VuZDogbnRoKCRGb3VuZCwgMSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRGb3VuZDtcclxufSIsIkBpbXBvcnQgXCJndXR0ZXItc3R5bGVzL2FkZFwiO1xyXG5AaW1wb3J0IFwiZ3V0dGVyLXN0eWxlcy9maW5kXCI7XHJcbkBpbXBvcnQgXCJndXR0ZXItc3R5bGVzL2hlbHBlcnNcIjsiLCIvLyBBY2NlcHRzIGEgZ3V0dGVyLXN0eWxlIHN0eWxlIGRlZmluaXRpb24gaW4gdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC4gQ29udmVydHMgaXQgdG8gdGhlIGludGVybmFsIGZvcm1hdCxcclxuLy8gYXBwZW5kcyBpdCB0byBhIGxpc3Qgb2YgZ3V0dGVyLXN0eWxlIHN0eWxlcyBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIGxpc3QuXHJcbi8vXHJcbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyBhIG5ldyBsaXN0LCBpdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHNvdXJjZSBsaXN0LlxyXG4vL1xyXG4vLyBhZGQtZ3V0dGVyLXN0eWxlLXN0eWxlKCRndXR0ZXItc3R5bGUtc3R5bGUtZGVmaW5pdGlvbiwgJGFwcGVuZC10by1saXN0KVxyXG4vLyAtICRndXR0ZXItc3R5bGUtZGVmaW5pdGlvbiA6IDxkZWZpbml0aW9uPiAgU2VlIGRvY3VtZW50YXRpb24gZm9yIHN5bnRheDpcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvU2luZ3VsYXJpdHkvd2lraS9DcmVhdGluZy1Hcmlkc1xyXG4vLyAtICRhcHBlbmQtdG8tbGlzdCAgICA6IFtsaXN0XSAgICAgICAgQSBsaXN0IHRvIGFwcGVuZCB0by5cclxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICRndXR0ZXItc3R5bGVzIGlmIG5vbmUgaXMgc3BlY2lmaWVkLlxyXG5AZnVuY3Rpb24gYWRkLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlLWRlZmluaXRpb24sICRjdXN0b20tbWFwOiBmYWxzZSkge1xyXG4gICRQYXJzZWQ6IHBhcnNlLWFkZCgkZ3V0dGVyLXN0eWxlLWRlZmluaXRpb24pOyAvLyBQYXJzZXMgZ3V0dGVyLXN0eWxlIGRlZmluaXRpb24gdG8gZ3V0dGVyLXN0eWxlL2JyZWFrcG9pbnRcclxuICAkR3V0dGVyLVN0eWxlOiBudGgoJFBhcnNlZCwgMSk7IC8vIEUuIGcuIGAoPGd1dHRlci1zdHlsZT4pYC5cclxuICAkQnJlYWtwb2ludDogbnRoKCRQYXJzZWQsIDIpOyAvLyBFaXRoZXIgYCg8YnJlYWtwb2ludD4pYCBvciBmYWxzZS5cclxuICAkTW9iaWxlLUZpcnN0OiBzZ3MtZ2V0KCdtb2JpbGUgZmlyc3QnKTtcclxuICAkR3V0dGVyLVN0eWxlLU1hcDogKCk7XHJcblxyXG4gIC8vIERldGVybWluZSBpZiBhIGN1c3RvbSBtYXAgb3IgdGhlIGRlZmF1bHQgbWFwcyBzaG91bGQgYmUgdXNlZC5cclxuICBAaWYgJGN1c3RvbS1tYXAge1xyXG4gICAgJEd1dHRlci1TdHlsZS1NYXA6ICRjdXN0b20tbWFwO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGlmIHNncy1oYXMoJ2d1dHRlciBzdHlsZXMnKSB7XHJcbiAgICAgICRHdXR0ZXItU3R5bGUtTWFwOiBzZ3MtZ2V0KCdndXR0ZXIgc3R5bGVzJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gICRHdXR0ZXItU3R5bGUtS2V5LUxlbmd0aDogbGVuZ3RoKG1hcC1rZXlzKCRHdXR0ZXItU3R5bGUtTWFwKSk7XHJcblxyXG4gIC8vIENoZWNrIHdoZXRoZXIgdGhlIGRlZmluaXRpb24gd2lsbCBiZSB0aGUgZmlyc3Qgb25lIGluIHRoZSBsaXN0XHJcbiAgLy8gYW5kIHdoZXRoZXIgaXQgaGFzIG5vIGJyZWFrcG9pbnQgc3BlY2lmaWVkLlxyXG4gIEBpZiAkQnJlYWtwb2ludCA9PSBudWxsIHtcclxuICAgIC8vIFJldHVybnMgdGhlIGZpcnN0IGl0ZW0gb2YgdGhlIGxpc3QsIGUuIGcuIGAoPGd1dHRlci1zdHlsZT4pYFxyXG4gICAgJEd1dHRlci1TdHlsZS1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLVN0eWxlLU1hcCwgKC0xcHg6ICRHdXR0ZXItU3R5bGUpKTtcclxuICB9XHJcbiAgICAvLyBJRiB0aGUgbGlzdCBpcyBpbml0aWF0ZWQgd2l0aCBhIGxpc3Qgb2YgZ3V0dGVyLXN0eWxlIGNvbHVtbnMgbmVlZCB0byBzdGFydCBvZmZcclxuICAgIC8vIGEgY29tbWEgc2VwcmF0ZWQgbGlzdC5cclxuICBAZWxzZSB7XHJcbiAgICBAaWYgbm90IChtYXAtaGFzLWtleSgkR3V0dGVyLVN0eWxlLU1hcCwgLTFweCkpIHtcclxuICAgICAgJEd1dHRlci1TdHlsZS1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLVN0eWxlLU1hcCwgbWFwLWdldCgkU2luZ3VsYXJpdHktU2V0dGluZ3MsICdndXR0ZXIgc3R5bGVzJykpO1xyXG4gICAgfVxyXG4gICAgJEd1dHRlci1TdHlsZS1NYXA6IG1hcC1tZXJnZSgkR3V0dGVyLVN0eWxlLU1hcCwgKCRCcmVha3BvaW50OiAkR3V0dGVyLVN0eWxlKSk7XHJcbiAgfVxyXG5cclxuICAkR3V0dGVyLVN0eWxlLU1hcDogc29ydC1tYXAoJEd1dHRlci1TdHlsZS1NYXAsIG5vdCAkTW9iaWxlLUZpcnN0KTtcclxuXHJcbiAgQHJldHVybiAkR3V0dGVyLVN0eWxlLU1hcDtcclxufVxyXG5cclxuQG1peGluIGFkZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZS1kZWZpbml0aW9uKSB7XHJcbiAgJEFkZC1ndXR0ZXItc3R5bGU6IGFkZC1ndXR0ZXItc3R5bGUoJGd1dHRlci1zdHlsZS1kZWZpbml0aW9uKTtcclxuICAkSE9MREVSOiBzZ3Mtc2V0KCdndXR0ZXIgc3R5bGVzJywgJEFkZC1ndXR0ZXItc3R5bGUpO1xyXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEZpbmQgZ3V0dGVyIHN0eWxlXHJcbi8vXHJcbi8vIEZpbmRzIHRoZSBndXR0ZXIgc3R5bGUgdGhhdCB5b3UgYXJlIHdvcmtpbmcgd2l0aC5cclxuLy8gRnJvbSBTaW5ndWxhcml0eVxyXG4vLyBNdXN0IGJlIHVzaW5nIEJyZWFrcG9pbnQgdG8gd29yayBwcm9wZXJseVxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQGZ1bmN0aW9uIGZpbmQtZ3V0dGVyLXN0eWxlKCR1c2VyLWd1dHRlci1zdHlsZXM6IG51bGwpIHtcclxuXHJcbiAgLy8gV2Ugc3VwcGx5IGEgZGVmYXVsdCBpZiB0aGUgdXNlciBoYXNuJ3Qgc2V0IGFueSBndXR0ZXJzIGFuZCBoYXNuJ3QgcGFzc2VkIGluIGEgY3VzdG9tIGNvbHVtbiBzZXRcclxuICAvLyBUaGUgZGVmYXVsdCBzdXBwbGllZCBpcyBiYXNlZCBvbiBvcmlnaW5hbCBTdXN5IG9wdGlvbnNcclxuICAkR3V0dGVycy1TdHlsZXM6IHNncy1nZXQoJ2d1dHRlciBzdHlsZXMnKTtcclxuXHJcbiAgJEZvdW5kOiBmaW5kLW9iamVjdCgkR3V0dGVycy1TdHlsZXMsICR1c2VyLWd1dHRlci1zdHlsZXMpO1xyXG5cclxuICBAaWYgbGVuZ3RoKCRGb3VuZCkgPT0gMSB7XHJcbiAgICAkRm91bmQ6IG50aCgkRm91bmQsIDEpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkRm91bmQ7XHJcbn0iLCJAZnVuY3Rpb24gZml4ZWQtZ3V0dGVyKCR1c2VyLWNvbHVtbnMsICR1c2VyLWd1dHRlciwgJHVzZXItZ3V0dGVyLXN0eWxlKSB7XHJcbiAgQGlmIGluZGV4KCR1c2VyLWd1dHRlci1zdHlsZSwgJ2ZpeGVkJykge1xyXG4gICAgLy8gQGRlYnVnICdGaXhlZCBpbiBvdXRwdXQgc3R5bGUnO1xyXG4gICAgQHJldHVybiB0cnVlO1xyXG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdXNlci1jb2x1bW5zKSA9PSAnbnVtYmVyJyBhbmQgbm90IHVuaXRsZXNzKCR1c2VyLWd1dHRlcikge1xyXG4gICAgLy8gQGRlYnVnICdFcXVhbCBjb2x1bW5zIHdpdGggYSB1bml0IGJhc2VkIGd1dHRlcic7XHJcbiAgICBAcmV0dXJuIHRydWU7XHJcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR1c2VyLWNvbHVtbnMpID09ICdsaXN0JyB7XHJcbiAgICBAaWYgdW5pdChudGgoJHVzZXItY29sdW1ucywgMSkpICE9IHVuaXQoJHVzZXItZ3V0dGVyKSB7XHJcbiAgICAgIC8vIEBkZWJ1ZyAnQ29sdW1ucyBhbmQgZ3V0dGVycyBhcmUgZGlmZmVyZW50IHVuaXRzJztcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBndXR0ZXItcHJvcGVydHkoJHVzZXItY29sdW1ucywgJHVzZXItZ3V0dGVyLCAkdXNlci1ndXR0ZXItc3R5bGUpIHtcclxuICBAaWYgZml4ZWQtZ3V0dGVyKCR1c2VyLWNvbHVtbnMsICR1c2VyLWd1dHRlciwgJHVzZXItZ3V0dGVyLXN0eWxlKSB7XHJcbiAgICBAcmV0dXJuICdwYWRkaW5nJztcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gJ21hcmdpbic7XHJcbiAgfVxyXG59IiwiQGltcG9ydCBcImFwaS9mbG9hdFwiO1xyXG5AaW1wb3J0IFwiYXBpL2lzb2xhdGlvblwiO1xyXG5AaW1wb3J0IFwiYXBpL2NhbGNcIjtcclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBNYXN0ZXIgR3JpZCBTcGFuIG1peGluXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AbWl4aW4gZ3JpZC1zcGFuKCRzcGFuLCAkbG9jYXRpb246IDEsICRncmlkOiBudWxsLCAkZ3V0dGVyOiBudWxsLCAkb3V0cHV0LXN0eWxlOiBudWxsLCAkZ3V0dGVyLXN0eWxlOiBudWxsLCAkb3B0aW9uczogbnVsbCkge1xyXG5cclxuICBAaWYgJG91dHB1dC1zdHlsZSA9PSBudWxsIHtcclxuICAgICRvdXRwdXQtc3R5bGU6IHNncy1nZXQoJ291dHB1dCcpO1xyXG4gIH1cclxuXHJcbiAgJEdyaWQ6IGZpbmQtZ3JpZCgkZ3JpZCk7XHJcbiAgJEd1dHRlcjogZmluZC1ndXR0ZXIoJGd1dHRlcik7XHJcbiAgJFN0eWxlOiBmaW5kLWd1dHRlci1zdHlsZSgkZ3V0dGVyLXN0eWxlKTtcclxuXHJcbiAgJFN0YXJ0LVJvdzogc3RhcnQtcm93KCRsb2NhdGlvbik7XHJcbiAgJEVuZC1Sb3c6IGVuZC1yb3coJHNwYW4sICRsb2NhdGlvbiwgJEdyaWQpO1xyXG5cclxuICAkRml4ZWQtR3V0dGVyOiBmaXhlZC1ndXR0ZXIoJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XHJcbiAgJFNwbGl0LUd1dHRlcjogaW5kZXgoJFN0eWxlLCAnc3BsaXQnKTtcclxuICAkR3V0dGVyLVByb3BlcnR5OiBndXR0ZXItcHJvcGVydHkoJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XHJcblxyXG4gICREaXJlY3Rpb246IHNncy1nZXQoJ2RpcmVjdGlvbicpO1xyXG4gICRGcm9tOiBpZigkb3B0aW9ucyBhbmQgdHlwZS1vZigkb3B0aW9ucykgPT0gJ21hcCcsIGlmKG1hcC1nZXQoJG9wdGlvbnMsICdmcm9tJyksIG1hcC1nZXQoJG9wdGlvbnMsICdmcm9tJyksICREaXJlY3Rpb24pLCAkRGlyZWN0aW9uKTtcclxuICAkRnJvbTogaWYoJEZyb20gPT0gJ2x0cicgb3IgJEZyb20gPT0gJ3J0bCcsIG5hbWVkLWRpcmVjdGlvbigkRnJvbSksICRGcm9tKTtcclxuXHJcbiAgJEhvbGRlcjogKCk7XHJcbiAgQGVhY2ggJGssICR2IGluICRvcHRpb25zIHtcclxuICAgICRIb2xkZXI6IGlmKCRrID09ICdmcm9tJywgJEhvbGRlciwgbWFwLW1lcmdlKCRIb2xkZXIsICgkazogJHYpKSk7XHJcbiAgfVxyXG4gICRvcHRpb25zOiBpZihsZW5ndGgoJEhvbGRlcikgPiAwLCAkSG9sZGVyLCBudWxsKTtcclxuXHJcbiAgJFNwYW4tTWFwOiAoXHJcbiAgICAgICAgICAnc3Bhbic6ICRzcGFuLFxyXG4gICAgICAgICAgJ2xvY2F0aW9uJzogJGxvY2F0aW9uLFxyXG4gICAgICAgICAgJ2dyaWQnOiAkR3JpZCxcclxuICAgICAgICAgICdndXR0ZXInOiAkR3V0dGVyLFxyXG4gICAgICAgICAgJ3N0eWxlJzogJFN0eWxlLFxyXG4gICAgICAgICAgJ3N0YXJ0IHJvdyc6ICRTdGFydC1Sb3csXHJcbiAgICAgICAgICAnZW5kIHJvdyc6ICRFbmQtUm93LFxyXG4gICAgICAgICAgJ2ZpeGVkIGd1dHRlcic6ICRGaXhlZC1HdXR0ZXIsXHJcbiAgICAgICAgICAnc3BsaXQgZ3V0dGVyJzogJFNwbGl0LUd1dHRlcixcclxuICAgICAgICAgICdndXR0ZXIgcHJvcGVydHknOiAkR3V0dGVyLVByb3BlcnR5LFxyXG4gICAgICAgICAgJ29wdGlvbnMnOiAkb3B0aW9uc1xyXG4gICk7XHJcblxyXG4gIEBpZiBzZ3MtZ2V0KCdkZWJ1ZycpICE9IGZhbHNlIHtcclxuICAgIC1zZ3Mtc3Bhbi1zZXR0aW5nczogaW5zcGVjdCgkU3Bhbi1NYXApO1xyXG4gIH1cclxuXHJcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cygnb3V0cHV0LSN7JG91dHB1dC1zdHlsZX0nKSB7XHJcbiAgICAkTGVmdDogKCk7XHJcbiAgICAkUmlnaHQ6ICgpO1xyXG5cclxuICAgIEBpZiAkRGlyZWN0aW9uID09ICdib3RoJyBvciAkRnJvbSA9PSAnbGVmdCcgb3IgKCREaXJlY3Rpb24gPT0gJ3J0bCcgYW5kICRGcm9tID09ICdvcHBvc2l0ZScpIHtcclxuICAgICAgJExlZnQ6IGNhbGwoJ291dHB1dC0jeyRvdXRwdXQtc3R5bGV9JywgbWFwLW1lcmdlKCRTcGFuLU1hcCwgKCdkaXJlY3Rpb24nOiBsZWZ0KSkpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAkRGlyZWN0aW9uID09ICdib3RoJyBvciAkRnJvbSA9PSAncmlnaHQnIG9yICgkRGlyZWN0aW9uID09ICdsdHInIGFuZCAkRnJvbSA9PSAnb3Bwb3NpdGUnKSB7XHJcbiAgICAgICRSaWdodDogY2FsbCgnb3V0cHV0LSN7JG91dHB1dC1zdHlsZX0nLCBtYXAtbWVyZ2UoJFNwYW4tTWFwLCAoJ2RpcmVjdGlvbic6IHJpZ2h0KSkpO1xyXG4gICAgfVxyXG5cclxuICAgICRMZWZ0LUtleXM6IG1hcC1rZXlzKCRMZWZ0KTtcclxuICAgICRSaWdodC1LZXlzOiBtYXAta2V5cygkUmlnaHQpO1xyXG4gICAgJEV4Y2x1ZGU6ICgpO1xyXG5cclxuICAgIEBlYWNoICRrZXkgaW4gJExlZnQtS2V5cyB7XHJcbiAgICAgIEBpZiBpbmRleCgkUmlnaHQtS2V5cywgJGtleSkge1xyXG4gICAgICAgIEBpZiBtYXAtZ2V0KCRSaWdodCwgJGtleSkgPT0gbWFwLWdldCgkTGVmdCwgJGtleSkge1xyXG4gICAgICAgICAgJEV4Y2x1ZGU6IGFwcGVuZCgkRXhjbHVkZSwgJGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQWx3YXlzIHRyeSBhbmQgcHJpbnQgdGhlIExlZnQgdmFsdWVcclxuICAgIEBpbmNsdWRlIGdyaWQtc3Bhbi1idWlsZC1leGNsdWRlKCRMZWZ0LCAkRXhjbHVkZSwgZmFsc2UpO1xyXG5cclxuICAgIC8vIElmIERpcmVjdGlvbiBpcyBCb3RoIG9yIFJUTCwgYWRkIHRoZSBSVEwgYXR0cmlidXRlIHNlbGVjdG9yXHJcbiAgICBAaWYgJERpcmVjdGlvbiA9PSAnYm90aCcgb3IgJERpcmVjdGlvbiA9PSAncnRsJyB7XHJcbiAgICAgIFtkaXI9XCJydGxcIl0gJiB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuLWJ1aWxkLWV4Y2x1ZGUoJFJpZ2h0LCAkRXhjbHVkZSwgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4tYnVpbGQtZXhjbHVkZSgkUmlnaHQsICRFeGNsdWRlLCB0cnVlKTtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYW4gb3V0cHV0IHN0eWxlIG5hbWVkIGAjeyRvdXRwdXQtc3R5bGV9YC4gUGxlYXNlIGVuc3VyZSB0aGF0IHRoZSBmdW5jdGlvbiBgb3V0cHV0LSN7JG91dHB1dC1zdHlsZX1gIGFuZCB0aGF0IHRoZSBvdXRwdXQgc3R5bGUgYCN7JG91dHB1dC1zdHlsZX1gIGFyZSBib3RoIGF2YWlsYWJsZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSB0aGVtLlwiO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGdyaWQtc3Bhbi1idWlsZCgkcHJvcGVydHksICR2YWx1ZSkge1xyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ21hcCcge1xyXG4gICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAZWFjaCAkcHJlZml4LCAkdmFsIGluICR2YWx1ZSB7XHJcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBncmlkLXNwYW4tYnVpbGQtZXhjbHVkZSgkcHJvcGVydGllcywgJGRlbHRhLCAkZXhjbHVkZTogZmFsc2UpIHtcclxuICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkcHJvcGVydGllcyB7XHJcbiAgICBAaWYgJGV4Y2x1ZGUge1xyXG4gICAgICBAaWYgbm90IGluZGV4KCRkZWx0YSwgJHByb3BlcnR5KSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuLWJ1aWxkKCRwcm9wZXJ0eSwgJHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbi1idWlsZCgkcHJvcGVydHksICR2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiQGZ1bmN0aW9uIG91dHB1dC1mbG9hdCgkU3Bhbi1NYXApIHtcclxuICAvLyBTZXQgdXAgTGVmdC9SaWdodCBtYXBzXHJcbiAgJFJldHVybjogKCk7XHJcblxyXG4gICRTcGFuOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwYW4nKTtcclxuICAkTG9jYXRpb246IG1hcC1nZXQoJFNwYW4tTWFwLCAnbG9jYXRpb24nKTtcclxuXHJcbiAgJEdyaWQ6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3JpZCcpO1xyXG4gICRHdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3V0dGVyJyk7XHJcbiAgJFN0eWxlOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0eWxlJyk7XHJcblxyXG4gICRTdGFydC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3RhcnQgcm93Jyk7XHJcbiAgJEVuZC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZW5kIHJvdycpO1xyXG5cclxuICAkRml4ZWQtR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2ZpeGVkIGd1dHRlcicpO1xyXG4gICRTcGxpdC1HdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3BsaXQgZ3V0dGVyJyk7XHJcbiAgJEd1dHRlci1Qcm9wZXJ0eTogbWFwLWdldCgkU3Bhbi1NYXAsICdndXR0ZXIgcHJvcGVydHknKTtcclxuXHJcbiAgJERpcmVjdGlvbjogbWFwLWdldCgkU3Bhbi1NYXAsICdkaXJlY3Rpb24nKTtcclxuICAkT3B0aW9uczogbWFwLWdldCgkU3Bhbi1NYXAsICdvcHRpb25zJyk7XHJcblxyXG4gIEBpZiAkU3RhcnQtUm93IHtcclxuICAgICRMb2NhdGlvbjogMTtcclxuICB9IEBlbHNlIGlmICRFbmQtUm93IHtcclxuICAgICRMb2NhdGlvbjogY29sdW1uLWNvdW50KCRHcmlkKSAtICRTcGFuICsgMTtcclxuICB9XHJcblxyXG4gICRXaWR0aDogY29sdW1uLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XHJcbiAgJE1hcmdpbi1TcGFuOiBjb2x1bW4tc3BhbigoJExvY2F0aW9uIC0gMSksIDEsICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xyXG4gICRHdXR0ZXItU3BhbjogZ3V0dGVyLXNwYW4oJEd1dHRlciwgJEdyaWQpO1xyXG5cclxuICAvLyBCYWNrd2FyZHMgQ29tcGF0aWJpbGl0eSBmb3IgT3B0aW9uc1xyXG4gIEBpZiB0eXBlLW9mKCRPcHRpb25zKSAhPSAnbWFwJyBhbmQgJE9wdGlvbnMgIT0gbnVsbCB7XHJcbiAgICAkT3B0aW9uczogKCdjbGVhcic6IHVucXVvdGUobnRoKCRPcHRpb25zLCAxKSkpO1xyXG4gIH1cclxuXHJcbiAgJERpcjogJERpcmVjdGlvbjtcclxuICAkT3BwOiBvcHBvc2l0ZS1kaXJlY3Rpb24oJERpcik7XHJcblxyXG4gICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ3dpZHRoJzogJFdpZHRoKSk7XHJcbiAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnY2xlYXInOiAkT3BwKSk7XHJcblxyXG4gIEBpZiAoJEVuZC1Sb3cpIHtcclxuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJE9wcCkpO1xyXG5cclxuICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XHJcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skRGlyfSc6IDApKTtcclxuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xyXG4gICAgfSBAZWxzZSBpZiBub3QgJEZpeGVkLUd1dHRlciB7XHJcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6IDApKTtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJERpcikpO1xyXG5cclxuICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XHJcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skRGlyfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcclxuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xyXG4gICAgfSBAZWxzZSBpZiBub3QgJEZpeGVkLUd1dHRlciB7XHJcbiAgICAgIEBpZiAkU3RhcnQtUm93IHtcclxuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JERpcn0nOiAwKSk7XHJcbiAgICAgIH1cclxuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuKSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIElmIG9wdGlvbnMgYXJlIHNldCwgd2UgbWVyZ2UgdGhlbSBpbiFcclxuICBAaWYgKCRPcHRpb25zKSB7XHJcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgQ0xlYXIgaXNuJ3QgYWxyZWFkeSBhdmFpbGFibGUsIHNldCBpdCFcclxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRSZXR1cm4sICdjbGVhcicpIHtcclxuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2NsZWFyJzogbm9uZSkpO1xyXG4gIH1cclxuXHJcbiAgLy8gTGVmdCBGaXhlZCBHdXR0ZXJzXHJcbiAgQGlmICRGaXhlZC1HdXR0ZXIge1xyXG4gICAgQGlmIGluZGV4KCRTdHlsZSwgJ3NwbGl0Jykge1xyXG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JERpcn0nOiAkR3V0dGVyLVNwYW4gLyAyKSk7XHJcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaWYgbm90ICRFbmQtUm93IHtcclxuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAkR3V0dGVyLVNwYW4pKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogMCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRSZXR1cm47XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBIYXBweSBTeW50YXggZm9yIEZsb2F0XHJcbi8vXHJcbi8vIE1ha2VzIHdvcmtpbmcgd2l0aCBGbG9hdCBlYXNpZXIsIGFzIGl0IGFsbG93cyB5b3UgdG8gd2FsayB0aGUgZ3JpZCBmb3Igc3ltbWV0cmljIGdyaWRzIGFuZCBlYXN5IGFwcGx5aW5nIG9mICdsYXN0JyBhbmQgJ2ZpcnN0JywgYXMgd2VsbCBhcyBhdXRvbWF0aWNhbGx5IGJ1aWxkaW5nIHRoZSB2ZXJib3NlIGdyaWQtc3BhbiBtaXhpbiBjYWxsXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AbWl4aW4gZmxvYXQtc3BhbigkU3BhbiwgJExvY2F0aW9uOiBmYWxzZSwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UsICRmcm9tOiBmYWxzZSkge1xyXG4gICRncmlkOiBmaW5kLWdyaWQoJGdyaWQpO1xyXG4gICRndXR0ZXI6IGZpbmQtZ3V0dGVyKCRndXR0ZXIpO1xyXG4gICRyb3c6IGZhbHNlO1xyXG5cclxuICAkT3B0aW9uczogaWYoJGZyb20sICgnZnJvbSc6ICRmcm9tKSwgbnVsbCk7XHJcblxyXG4gIC8vIFdvcmtpbmcgYXJvdW5kIFNBU1MgdHJlYXRpbmcgYSBudW1iZXIgbGlrZSBhIGxpc3Qgd2l0aCBvbmUgZWxlbWVudFxyXG4gIEBpZiB0eXBlLW9mKCRncmlkKSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ3JpZCkgPT0gMSB7XHJcbiAgICAkZ3JpZDogbnRoKCRncmlkLCAxKTtcclxuICB9XHJcblxyXG4gIC8vIFdvcmtpbmcgd2l0aCBhIHN5bW1ldHJpYyBncmlkXHJcbiAgQGlmIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIHtcclxuICAgIC8vIFNwZWNpYWwgdHJlYXRtZW50IGZvciBub24tbnVtZXJpYyBsb2NhdGlvblxyXG4gICAgQGlmIHR5cGUtb2YoJExvY2F0aW9uKSAhPSAnbnVtYmVyJyB7XHJcbiAgICAgIEBpZiAkTG9jYXRpb24gPT0gJ2xhc3QnIG9yICRMb2NhdGlvbiA9PSAnb21lZ2EnIHtcclxuICAgICAgICAkTG9jYXRpb246ICRncmlkIC0gJFNwYW4gKyAxO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBAaWYgJExvY2F0aW9uID09ICdmaXJzdCcgb3IgJExvY2F0aW9uID09ICdhbHBoYScge1xyXG4gICAgICAgICAgJHJvdzogdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJExvY2F0aW9uOiAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAnZmxvYXQnLCAkZ3V0dGVyLXN0eWxlLCAkT3B0aW9ucyk7XHJcblxyXG4gICAgQGlmICRyb3cge1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxuICB9XHJcbiAgICAvLyBXb3JraW5nIHdpdGggYW4gYXN5bW1ldHJpYyBncmlkLCBzaG91bGQgaGF2ZSBsb2NhdGlvbiBwcm92aWRlZFxyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGdyaWQpID09ICdsaXN0JyBhbmQgJExvY2F0aW9uICE9IGZhbHNlIHtcclxuICAgIEBpbmNsdWRlIGdyaWQtc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkZ3JpZCwgJGd1dHRlciwgJ2Zsb2F0JywgJGd1dHRlci1zdHlsZSwgJE9wdGlvbnMpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gJ0FzeW1tZXRyaWMgR3JpZHMgbmVlZCBhIExvY2F0aW9uIHZhbHVlIGFzIHdlbGwgYXMgYSBzcGFuIHZhbHVlIGluIG9yZGVyIHRvIGtub3cgd2hlcmUgb24gdGhlIGdyaWQgeW91IGFyZSEgUGxlYXNlIGluY2x1ZGUgYSBsb2NhdGlvbiB2YWx1ZSEnO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gb3V0cHV0LWlzb2xhdGlvbigkU3Bhbi1NYXApIHtcclxuICAvLyBTZXQgdXAgTGVmdC9SaWdodCBtYXBzXHJcbiAgJFJldHVybjogKCk7XHJcblxyXG4gICRTcGFuOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwYW4nKTtcclxuICAkTG9jYXRpb246IG1hcC1nZXQoJFNwYW4tTWFwLCAnbG9jYXRpb24nKTtcclxuXHJcbiAgJEdyaWQ6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3JpZCcpO1xyXG4gICRHdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZ3V0dGVyJyk7XHJcbiAgJFN0eWxlOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3N0eWxlJyk7XHJcblxyXG4gICRTdGFydC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3RhcnQgcm93Jyk7XHJcbiAgJEVuZC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZW5kIHJvdycpO1xyXG5cclxuICAkRml4ZWQtR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2ZpeGVkIGd1dHRlcicpO1xyXG4gICRTcGxpdC1HdXR0ZXI6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3BsaXQgZ3V0dGVyJyk7XHJcbiAgJEd1dHRlci1Qcm9wZXJ0eTogbWFwLWdldCgkU3Bhbi1NYXAsICdndXR0ZXIgcHJvcGVydHknKTtcclxuXHJcbiAgJERpcmVjdGlvbjogbWFwLWdldCgkU3Bhbi1NYXAsICdkaXJlY3Rpb24nKTtcclxuICAkT3B0aW9uczogbWFwLWdldCgkU3Bhbi1NYXAsICdvcHRpb25zJyk7XHJcblxyXG4gICRXaWR0aDogY29sdW1uLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJEdyaWQsICRHdXR0ZXIsICRTdHlsZSk7XHJcbiAgJE1hcmdpbi1TcGFuOiBjb2x1bW4tc3BhbigoJExvY2F0aW9uIC0gMSksIDEsICRHcmlkLCAkR3V0dGVyLCAkU3R5bGUpO1xyXG4gICRHdXR0ZXItU3BhbjogZ3V0dGVyLXNwYW4oJEd1dHRlciwgJEdyaWQpO1xyXG5cclxuICAvLyBCYWNrd2FyZHMgQ29tcGF0aWJpbGl0eSBmb3IgT3B0aW9uc1xyXG4gIEBpZiB0eXBlLW9mKCRPcHRpb25zKSAhPSAnbWFwJyBhbmQgJE9wdGlvbnMgIT0gbnVsbCB7XHJcbiAgICAkT3B0aW9uczogKCdjbGVhcic6IHVucXVvdGUobnRoKCRPcHRpb25zLCAxKSkpO1xyXG4gIH1cclxuXHJcbiAgJERpcjogJERpcmVjdGlvbjtcclxuICAkT3BwOiBvcHBvc2l0ZS1kaXJlY3Rpb24oJERpcik7XHJcblxyXG4gICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ3dpZHRoJzogJFdpZHRoKSk7XHJcblxyXG4gIEBpZiAoJEVuZC1Sb3cpIHtcclxuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJE9wcCkpO1xyXG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAwKSk7XHJcblxyXG4gICAgQGlmICRTcGxpdC1HdXR0ZXIgYW5kIG5vdCAkRml4ZWQtR3V0dGVyIHtcclxuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyRPcHB9JzogMCkpO1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnZmxvYXQnOiAkRGlyKSk7XHJcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skT3BwfSc6IC0xMDAlKSk7XHJcblxyXG4gICAgQGlmICRTdGFydC1Sb3cge1xyXG4gICAgICBAaWYgJFNwbGl0LUd1dHRlciBhbmQgbm90ICRGaXhlZC1HdXR0ZXIge1xyXG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJEd1dHRlci1TcGFuIC8gMikpO1xyXG4gICAgICB9IEBlbHNlIGlmIG5vdCAkRml4ZWQtR3V0dGVyIHtcclxuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6IDApKTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiAkU3BsaXQtR3V0dGVyIGFuZCBub3QgJEZpeGVkLUd1dHRlciB7XHJcbiAgICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAkTWFyZ2luLVNwYW4gKyAkR3V0dGVyLVNwYW4gKyAkR3V0dGVyLVNwYW4gLyAyKSk7XHJcbiAgICAgIH0gQGVsc2UgaWYgbm90ICRGaXhlZC1HdXR0ZXIge1xyXG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJE1hcmdpbi1TcGFuICsgJEd1dHRlci1TcGFuKSk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogJE1hcmdpbi1TcGFuKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLy8gSWYgb3B0aW9ucyBhcmUgc2V0LCB3ZSBtZXJnZSB0aGVtIGluIVxyXG4gIEBpZiAoJE9wdGlvbnMpIHtcclxuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvLyBJZiBDTGVhciBpc24ndCBhbHJlYWR5IGF2YWlsYWJsZSwgc2V0IGl0IVxyXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJFJldHVybiwgJ2NsZWFyJykge1xyXG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnY2xlYXInOiBub25lKSk7XHJcbiAgfVxyXG5cclxuICAvLyBMZWZ0IEZpeGVkIEd1dHRlcnNcclxuICBAaWYgJEZpeGVkLUd1dHRlciB7XHJcbiAgICBAaWYgaW5kZXgoJFN0eWxlLCAnc3BsaXQnKSB7XHJcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skRGlyfSc6ICRHdXR0ZXItU3BhbiAvIDIpKTtcclxuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnI3skR3V0dGVyLVByb3BlcnR5fS0jeyRPcHB9JzogJEd1dHRlci1TcGFuIC8gMikpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiBub3QgJEVuZC1Sb3cge1xyXG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJyN7JEd1dHRlci1Qcm9wZXJ0eX0tI3skT3BwfSc6ICRHdXR0ZXItU3BhbikpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCcjeyRHdXR0ZXItUHJvcGVydHl9LSN7JE9wcH0nOiAwKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJFJldHVybjtcclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIEhhcHB5IFN5bnRheCBmb3IgSXNvbGF0aW9uXHJcbi8vXHJcbi8vIE1ha2VzIHdvcmtpbmcgd2l0aCBJc29sYXRpb24gZWFzaWVyLCBhcyBpdCBtb3ZlcyBDbGVhciB0byBhIDFzdCBjbGFzcyBjaXRpemVuIG9mIHRoZSBtaXhpbiwgYW5kIGF1dG9tYXRpY2FsbHkgYnVpbGRzIHRoZSB2ZXJib3NlIGdyaWQtc3BhbiBtaXhpbiBjYWxsXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AbWl4aW4gaXNvbGF0aW9uLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGNsZWFyOiBmYWxzZSwgJGdyaWQ6IGZhbHNlLCAkZ3V0dGVyOiBmYWxzZSwgJGd1dHRlci1zdHlsZTogZmFsc2UsICRmcm9tOiBmYWxzZSkge1xyXG4gICRPcHRpb25zOiAoKTtcclxuICBAaWYgJGNsZWFyIHtcclxuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnY2xlYXInOiB1bnF1b3RlKCRjbGVhcikpKTtcclxuICB9XHJcbiAgQGlmICRmcm9tIHtcclxuICAgICRPcHRpb25zOiBtYXAtbWVyZ2UoJE9wdGlvbnMsICgnZnJvbSc6ICRmcm9tKSk7XHJcbiAgfVxyXG5cclxuICAkT3B0aW9uczogaWYobGVuZ3RoKCRPcHRpb25zKSA+IDAsICRPcHRpb25zLCBudWxsKTtcclxuICBAaW5jbHVkZSBncmlkLXNwYW4oJFNwYW4sICRMb2NhdGlvbiwgJGdyaWQsICRndXR0ZXIsICdpc29sYXRpb24nLCAkZ3V0dGVyLXN0eWxlLCAkT3B0aW9ucyk7XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyBIYXBweSBTeW50YXggb2YgQXN5bW1ldHJpYyBHcmlkc1xyXG4vL1xyXG4vLyBNYWtlcyB3b3JraW5nIHdpdGggYXN5bW1ldHJpYyBncmlkcyBlYXNpZXIhXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5AbWl4aW4gYXN5bW1ldHJpYy1zcGFuKCRMb2NhdGlvbiwgJFNwYW46IGZhbHNlLCAkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSwgJGZyb206IGZhbHNlLCAkb3V0cHV0LXN0eWxlOiBmYWxzZSkge1xyXG5cclxuICAkU3BhbjogaWYoJFNwYW4gIT0gZmFsc2UsICRTcGFuLCAxKTtcclxuICAkb3V0cHV0LXN0eWxlOiBpZigkb3V0cHV0LXN0eWxlICE9IGZhbHNlLCAkb3V0cHV0LXN0eWxlLCBzZ3MtZ2V0KCdhc3ltbWV0cmljIG91dHB1dCcpKTtcclxuXHJcbiAgJE9wdGlvbnM6ICgpO1xyXG4gIEBpZiAkZnJvbSB7XHJcbiAgICAkT3B0aW9uczogbWFwLW1lcmdlKCRPcHRpb25zLCAoJ2Zyb20nOiAkZnJvbSkpO1xyXG4gIH1cclxuICAkT3B0aW9uczogaWYobGVuZ3RoKCRPcHRpb25zKSA+IDAsICRPcHRpb25zLCBudWxsKTtcclxuXHJcbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAkb3V0cHV0LXN0eWxlLCAkZ3V0dGVyLXN0eWxlLCAkT3B0aW9ucyk7XHJcbn0iLCJAZnVuY3Rpb24gb3V0cHV0LWNhbGMoJFNwYW4tTWFwKSB7XHJcbiAgLy8gU2V0IHVwIExlZnQvUmlnaHQgbWFwc1xyXG4gICRSZXR1cm46ICgpO1xyXG5cclxuICAkU3BhbjogbWFwLWdldCgkU3Bhbi1NYXAsICdzcGFuJyk7XHJcbiAgJExvY2F0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2xvY2F0aW9uJyk7XHJcblxyXG4gICRHcmlkOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2dyaWQnKTtcclxuICAkR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2d1dHRlcicpO1xyXG4gICRTdHlsZTogbWFwLWdldCgkU3Bhbi1NYXAsICdzdHlsZScpO1xyXG5cclxuICBAaWYgdW5pdGxlc3MoJEd1dHRlcikge1xyXG4gICAgJEVSUk9SLU1FU1NBR0U6IFwiQ2FsYyBvdXRwdXQgc3R5bGUgdXNlcyBmaXhlZCBndXR0ZXJzIChndXR0ZXJzIHdpdGggdW5pdHMpLiBQbGVhc2UgZGVmaW5lIGZpeGVkIGd1dHRlcnMgdG8gdXNlIGNhbGNcIjtcclxuICAgIEBpZiBmZWF0dXJlLWV4aXN0cyhhdC1lcnJvcikge1xyXG4gICAgICBAZXJyb3IgJEVSUk9SLU1FU1NBR0U7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQHdhcm4gJEVSUk9SLU1FU1NBR0U7XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRSZXR1cm47XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkR3JpZCkgPT0gJ251bWJlcicge1xyXG4gICAgJEVSUk9SLU1FU1NBR0U6IFwiQ2FsYyBvdXRwdXQgc3R5bGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIGFzeW1tZXRyaWMgZ3JpZHMsIGVzcGVjaWFsbHkgd2l0aCBhIG1peCBvZiBmaXhlZCBhbmQgZmx1aWQgY29sdW1ucy4gUGxlYXNlIGRlZmluZSBhbiBhc3ltbWV0cmljIGdyaWQgb3IgdXNlIGFub3RoZXIgb3V0cHV0IHN0eWxlLlwiO1xyXG4gICAgQGlmIGZlYXR1cmUtZXhpc3RzKGF0LWVycm9yKSB7XHJcbiAgICAgIEBlcnJvciAkRVJST1ItTUVTU0FHRTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAd2FybiAkRVJST1ItTUVTU0FHRTtcclxuICAgIH1cclxuICAgIEByZXR1cm4gJFJldHVybjtcclxuICB9XHJcblxyXG4gICRTdGFydC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnc3RhcnQgcm93Jyk7XHJcbiAgJEVuZC1Sb3c6IG1hcC1nZXQoJFNwYW4tTWFwLCAnZW5kIHJvdycpO1xyXG5cclxuICAkU3BsaXQtR3V0dGVyOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ3NwbGl0IGd1dHRlcicpO1xyXG5cclxuICAkRGlyZWN0aW9uOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ2RpcmVjdGlvbicpO1xyXG4gICRPcHRpb25zOiBtYXAtZ2V0KCRTcGFuLU1hcCwgJ29wdGlvbnMnKTtcclxuXHJcbiAgJERpcjogJERpcmVjdGlvbjtcclxuICAkT3BwOiBvcHBvc2l0ZS1kaXJlY3Rpb24oJERpcik7XHJcblxyXG4gICRXaWR0aDogJyc7XHJcbiAgJE1hcmdpbjogbnVsbDtcclxuICAkTWluLVdpZHRoOiAnKCc7XHJcblxyXG4gICRGaXhlZDogKCk7XHJcbiAgJEZsdWlkOiAoKTtcclxuICAkRml4ZWQtVG90YWxzOiAoJ3B4JzogMCwgJ2VtJzogMCwgJyUnOiAwKTtcclxuICAkR3V0dGVyLVRvdGFsczogaWYoc3RyLWluZGV4KCRTdHlsZSwgJ3NwbGl0JyksICRHdXR0ZXIgKiBsZW5ndGgoJEdyaWQpLCAkR3V0dGVyICogKGxlbmd0aCgkR3JpZCkgLSAxKSk7XHJcbiAgJEZsdWlkLVRvdGFsczogMDtcclxuICAkRmx1aWQtRml4ZWQtU3VtOiAnJztcclxuICAkU2luZ2xlLUZsdWlkOiAnJztcclxuXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJEdyaWQpIHtcclxuICAgICRJdGVtOiBudGgoJEdyaWQsICRpKTtcclxuICAgIEBpZiBub3QgdW5pdGxlc3MoJEl0ZW0pIHtcclxuICAgICAgJEZpeGVkOiBtYXAtbWVyZ2UoJEZpeGVkLCAoJGk6ICRJdGVtKSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJEZsdWlkOiBtYXAtbWVyZ2UoJEZsdWlkLCAoJGk6ICRJdGVtKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkaywgJHYgaW4gJEZpeGVkIHtcclxuICAgICRVbml0OiB1bml0KCR2KTtcclxuICAgICRSdW5uaW5nOiBtYXAtZ2V0KCRGaXhlZC1Ub3RhbHMsICRVbml0KSArICR2O1xyXG4gICAgJEZpeGVkLVRvdGFsczogbWFwLW1lcmdlKCRGaXhlZC1Ub3RhbHMsICgkVW5pdDogJFJ1bm5pbmcpKTtcclxuICB9XHJcblxyXG4gIEBlYWNoICRrLCAkdiBpbiAkRmx1aWQge1xyXG4gICAgJEZsdWlkLVRvdGFsczogJEZsdWlkLVRvdGFscyArICR2O1xyXG4gIH1cclxuXHJcbiAgQGVhY2ggJGssICR2IGluICRGaXhlZC1Ub3RhbHMge1xyXG5cclxuICAgIEBpZiAkdiAhPSAwIHtcclxuICAgICAgJEZsdWlkLUZpeGVkLVN1bTogJyN7JEZsdWlkLUZpeGVkLVN1bX0jeyR2fSArICc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBXaWR0aCBvZiBhIHNpbmdsZSBmbHVpZCBpdGVtLCBmb3IgY2FsYygpXHJcbiAgJFNpbmdsZS1GbHVpZDogJygoMTAwJSAtICgjeyRGbHVpZC1GaXhlZC1TdW19I3skR3V0dGVyLVRvdGFsc30pKSAvICgjeyRGbHVpZC1Ub3RhbHN9KSknO1xyXG5cclxuICAvLyBNYXJnaW4gQ2FsY3VsYXRpb25cclxuICBAaWYgbm90ICRTdGFydC1Sb3cgb3Igbm90ICRFbmQtUm93IHtcclxuICAgIEBpZiAkU3BsaXQtR3V0dGVyIHtcclxuICAgICAgJE1hcmdpbjogJyN7JEd1dHRlciAvIDJ9ICsgJztcclxuICAgIH1cclxuXHJcbiAgICBAZm9yICRpIGZyb20gMSB0byAkTG9jYXRpb24ge1xyXG4gICAgICBAaWYgdW5pdGxlc3MobnRoKCRHcmlkLCAkaSkpIHtcclxuICAgICAgICAkTWFyZ2luOiAnI3skTWFyZ2lufSgjeyRTaW5nbGUtRmx1aWR9ICogI3tudGgoJEdyaWQsICRpKX0gKyAjeyRHdXR0ZXJ9KSArICc7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRNYXJnaW46ICcjeyRNYXJnaW59KCN7bnRoKCRHcmlkLCAkaSl9ICsgI3skR3V0dGVyfSkgKyAnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpZiAkTWFyZ2luICE9IG51bGwge1xyXG4gICAgJE1hcmdpbjogc3RyLXNsaWNlKCRNYXJnaW4sIDAsIC00KTtcclxuICB9XHJcblxyXG4gIC8vIFdpZHRoIENhbGN1bGF0aW9uXHJcbiAgQGlmICRTcGFuID09IDEge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRGaXhlZCwgJExvY2F0aW9uKSB7XHJcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ3dpZHRoJzogbWFwLWdldCgkRml4ZWQsICRMb2NhdGlvbikpKTtcclxuICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJEZsdWlkLCAkTG9jYXRpb24pIHtcclxuICAgICAgJE1hdGg6ICcoI3skU2luZ2xlLUZsdWlkfSkgKiAje250aCgkR3JpZCwgJExvY2F0aW9uKX0nO1xyXG4gICAgICAkU3Bhbi1NYXA6ICgnd2lkdGgnOiAoJ3dlYmtpdCc6IC13ZWJraXQtY2FsYygje3VucXVvdGUoJE1hdGgpfSksICdzdGFuZGFyZCc6IGNhbGMoI3t1bnF1b3RlKCRNYXRoKX0pKSk7XHJcbiAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAkU3Bhbi1NYXApO1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgJExvY2F0aW9uLUVuZDogJExvY2F0aW9uICsgKCRTcGFuIC0gMSk7XHJcbiAgICAkRml4ZWQtQ291bnRlcjogMDtcclxuICAgIEBmb3IgJGkgZnJvbSAkTG9jYXRpb24gdGhyb3VnaCAkTG9jYXRpb24tRW5kIHtcclxuICAgICAgQGlmIHVuaXRsZXNzKG50aCgkR3JpZCwgJGkpKSB7XHJcbiAgICAgICAgJFdpZHRoOiAnI3skV2lkdGh9KCN7JFNpbmdsZS1GbHVpZH0gKiAje250aCgkR3JpZCwgJGkpfSc7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRGaXhlZC1Db3VudGVyOiAkRml4ZWQtQ291bnRlciArIDE7XHJcbiAgICAgICAgJE1pbi1XaWR0aDogJyN7JE1pbi1XaWR0aH0je250aCgkR3JpZCwgJGkpfSArICN7JEd1dHRlcn0gKyAnO1xyXG4gICAgICAgICRXaWR0aDogJyN7JFdpZHRofSgje250aCgkR3JpZCwgJGkpfSc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAkaSAhPSAkTG9jYXRpb24tRW5kIHtcclxuICAgICAgICAkV2lkdGg6ICcjeyRXaWR0aH0gKyAjeyRHdXR0ZXJ9KSArICc7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRNaW4tV2lkdGg6IHN0ci1zbGljZSgkTWluLVdpZHRoLCAwLCAtNCk7XHJcbiAgICAgICAgQGlmICRGaXhlZC1Db3VudGVyID09IDEge1xyXG4gICAgICAgICAgJE1pbi1XaWR0aDogJyN7JE1pbi1XaWR0aH0gLSAjeyRHdXR0ZXJ9JztcclxuICAgICAgICB9XHJcbiAgICAgICAgJE1pbi1XaWR0aDogJyN7JE1pbi1XaWR0aH0pJztcclxuICAgICAgICAkV2lkdGg6ICcjeyRXaWR0aH0pJztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIE1pbiB3aWR0aCBoYW5kbGluZ1xyXG4gICAgQGlmICRNaW4tV2lkdGggIT0gJyknIHtcclxuICAgICAgJE1pbi1NYXA6ICgnbWluLXdpZHRoJzogKCd3ZWJraXQnIDogLXdlYmtpdC1jYWxjKCN7dW5xdW90ZSgkTWluLVdpZHRoKX0pLCAnc3RhbmRhcmQnOiBjYWxjKCN7dW5xdW90ZSgkTWluLVdpZHRoKX0pKSk7XHJcblxyXG4gICAgICBAaWYgc2dzLWdldCgnY2FsYyBpbmNsdWRlIG1pbi13aWR0aCcpIHtcclxuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJE1pbi1NYXApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJFNwYW4tTWFwOiAoJ3dpZHRoJzogKCd3ZWJraXQnOiAtd2Via2l0LWNhbGMoI3t1bnF1b3RlKCRXaWR0aCl9KSwgJ3N0YW5kYXJkJzogY2FsYygje3VucXVvdGUoJFdpZHRoKX0pKSk7XHJcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJFNwYW4tTWFwKTtcclxuICB9XHJcblxyXG4gIC8vIEJ1aWxkIG1hcmdpbnMgYW5kIEZsb2F0c1xyXG4gIEBpZiAoJEVuZC1Sb3cpIHtcclxuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ2Zsb2F0JzogJE9wcCkpO1xyXG4gICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JERpcn0nOiAwKSk7XHJcblxyXG4gICAgQGlmICRTcGxpdC1HdXR0ZXIge1xyXG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skT3BwfSc6ICRHdXR0ZXIgLyAyKSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJFJldHVybjogbWFwLW1lcmdlKCRSZXR1cm4sICgnbWFyZ2luLSN7JE9wcH0nOiAwKSk7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdmbG9hdCc6ICREaXIpKTtcclxuICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyRPcHB9JzogLTEwMCUpKTtcclxuXHJcbiAgICBAaWYgJFN0YXJ0LVJvdyB7XHJcbiAgICAgIEBpZiAkU3BsaXQtR3V0dGVyIHtcclxuICAgICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgKCdtYXJnaW4tI3skRGlyfSc6ICRHdXR0ZXIgLyAyKSk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRSZXR1cm46IG1hcC1tZXJnZSgkUmV0dXJuLCAoJ21hcmdpbi0jeyREaXJ9JzogMCkpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJE1hcmdpbi1NYXA6ICgnbWFyZ2luLSN7JERpcn0nOiAoJ3dlYmtpdCc6IC13ZWJraXQtY2FsYygje3VucXVvdGUoJE1hcmdpbil9KSwgJ3N0YW5kYXJkJzogY2FsYygje3VucXVvdGUoJE1hcmdpbil9KSkpO1xyXG4gICAgICAkUmV0dXJuOiBtYXAtbWVyZ2UoJFJldHVybiwgJE1hcmdpbi1NYXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkUmV0dXJuO1xyXG59XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuLy8gSGFwcHkgU3ludGF4IGZvciBDYWxjXHJcbi8vXHJcbi8vIE1ha2VzIHdvcmtpbmcgd2l0aCBDYWxjIGVhc2llciwgYXMgaXQgbW92ZXMgQ2xlYXIgdG8gYSAxc3QgY2xhc3MgY2l0aXplbiBvZiB0aGUgbWl4aW4sIGFuZCBhdXRvbWF0aWNhbGx5IGJ1aWxkcyB0aGUgdmVyYm9zZSBncmlkLXNwYW4gbWl4aW4gY2FsbFxyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuQG1peGluIGNhbGMtc3BhbigkU3BhbiwgJExvY2F0aW9uLCAkY2xlYXI6IGZhbHNlLCAkZ3JpZDogZmFsc2UsICRndXR0ZXI6IGZhbHNlLCAkZ3V0dGVyLXN0eWxlOiBmYWxzZSwgJGZyb206IGZhbHNlKSB7XHJcblxyXG4gIEBpZiAkZ3V0dGVyICE9IGZhbHNlIGFuZCB1bml0bGVzcygkZ3V0dGVyKSB7XHJcbiAgICBAd2FybiBcIkNhbGMgb3V0cHV0IHN0eWxlIHVzZXMgZml4ZWQgZ3V0dGVycyAoZ3V0dGVycyB3aXRoIHVuaXRzKS4gUGxlYXNlIGRlZmluZSBmaXhlZCBndXR0ZXJzIHRvIHVzZSBjYWxjXCI7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyaWQgIT0gZmFsc2UgYW5kIHR5cGUtb2YoJGdyaWQpID09ICdudW1iZXInIHtcclxuICAgIEB3YXJuIFwiQ2FsYyBvdXRwdXQgc3R5bGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIGFzeW1tZXRyaWMgZ3JpZHMsIGVzcGVjaWFsbHkgd2l0aCBhIG1peCBvZiBmaXhlZCBhbmQgZmx1aWQgY29sdW1ucy4gUGxlYXNlIGRlZmluZSBhbiBhc3ltbWV0cmljIGdyaWQuXCI7XHJcbiAgfVxyXG5cclxuICAkT3B0aW9uczogKCk7XHJcbiAgQGlmICRjbGVhciB7XHJcbiAgICAkT3B0aW9uczogbWFwLW1lcmdlKCRPcHRpb25zLCAoJ2NsZWFyJzogJGNsZWFyKSk7XHJcbiAgfVxyXG4gIEBpZiAkZnJvbSB7XHJcbiAgICAkT3B0aW9uczogbWFwLW1lcmdlKCRPcHRpb25zLCAoJ2Zyb20nOiAkZnJvbSkpO1xyXG4gIH1cclxuXHJcbiAgJE9wdGlvbnM6IGlmKGxlbmd0aCgkT3B0aW9ucykgPiAwLCAkT3B0aW9ucywgbnVsbCk7XHJcbiAgQGluY2x1ZGUgZ3JpZC1zcGFuKCRTcGFuLCAkTG9jYXRpb24sICRncmlkLCAkZ3V0dGVyLCAnY2FsYycsICRndXR0ZXItc3R5bGUsICRPcHRpb25zKTtcclxufVxyXG4iLCIvKiBnZW5lcmF0ZWQgd2l0aCBncnVudC1zYXNzLWdsb2JiaW5nICovXHJcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXMvY29sb3JzXCI7XHJcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXMvZ3JpZFwiO1xyXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzL3R5cG9ncmFwaHlcIjtcclxuIiwiJGNvbG9yLWJhY2tncm91bmQ6ICNmNWY1ZjU7XHJcblxyXG4kY29sb3ItYnJhbmQ6ICMwMDQ5OTA7XHJcbiRjb2xvci1wcmltYXJ5OiAjMDBiMmNlO1xyXG4kY29sb3Itc3VydmV5OiAgIzAwYjBjYTtcclxuJGlucHV0LWJvcmRlci1jb2xvcjogI2U3ZTdlNztcclxuJGltZ2JnOiAjZjhmOGY4O1xyXG5cclxuJGxpZ2h0ZXN0LWdyYXk6ICNmNWY1ZjU7XHJcbiRsaWdodC1ncmF5OiAjZjBmMGYwO1xyXG4kbWVkaXVtLWdyYXk6ICNjY2M7XHJcbiRkYXJrLWdyYXk6ICM3MDcwNzA7XHJcblxyXG4kY29sb3ItYm9yZGVyczogI2JjYmNiYztcclxuJGNvbG9yLWJvcmRlcnMtbGlnaHQ6ICNlOGU4ZTg7XHJcblxyXG4kY29sb3ItdGV4dC1ib2R5OiAjNzA3MDcwO1xyXG4kY29sb3ItdGV4dC1oZWFkZXJzOiAkY29sb3ItcHJpbWFyeTtcclxuJGNvbG9yLWxpbmtzOiAkY29sb3ItcHJpbWFyeTtcclxuJGNvbG9yLWxpbmtzLWFjdGl2ZTogZGFya2VuKCRjb2xvci1wcmltYXJ5LCA1JSk7XHJcblxyXG4kZXJyb3ItYmFja2dyb3VuZDogI2U4N2Y3ZjtcclxuJGVycm9yLWZvcmVncm91bmQ6ICNmZmY7XHJcbiRlcnJvci10ZXh0OiAjOWExZDFkOyIsIkBpbXBvcnQgXCJfdHlwb2dyYXBoeS5zY3NzXCI7XHJcblxyXG4kY29udGVudC1tYXJnaW46ICgzMHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFyZW07XHJcbiRjb250ZW50LW1hcmdpbi1lbTogKDMwcHggLyAkYmFzZS1mb250LXNpemUpICogMWVtO1xyXG5cclxuJHhzOiAzMGVtO1xyXG4kc206IDQ1ZW07XHJcbiRtZDogNTVlbTtcclxuJGxnOiAoMTAwMHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcclxuJGxnLWJwOiAkbGcgKyAyICogJGNvbnRlbnQtbWFyZ2luLWVtO1xyXG4vKlxyXG4kZ3JpZHM6IDEyO1xyXG4kZ3V0dGVyczogMS8zOyAvLygyMHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcclxuLy8kZ3V0dGVyczogYWRkLWd1dHRlcigxLzEwIGF0ICRtZCk7XHJcbiovXHJcbkBpbmNsdWRlIGFkZC1ncmlkKDEyKTtcclxuQGluY2x1ZGUgYWRkLWd1dHRlciguMTUpO1xyXG5AaW5jbHVkZSBzZ3MtY2hhbmdlKCdvdXRwdXQnLCAnaXNvbGF0aW9uJyk7XHJcblxyXG4kZm9ybS1zcGFjaW5nOiAxNXB4O1xyXG4kZm9ybS1zcGFjaW5nLXNtOiAxMHB4O1xyXG4kZmllbGQtcGFkZGluZy1oOiAxMXB4O1xyXG4kZmllbGQtcGFkZGluZy12OiAxMXB4O1xyXG4kYnV0dG9uLXBhZGRpbmctaDogMThweDtcclxuJGJ1dHRvbi1wYWRkaW5nLXY6IDBweDsiLCIvLyRmb250LWhlYWRlcjogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYU5ldWVXMDFcIiwgSGVsdmV0aWNhLCBhcmlhbCwgc2Fucy1zZXJpZjtcclxuJGZvbnQtaGVhZGVyOiBcIkhlbHZldGljYU5ldWVXMDFcIiwgSGVsdmV0aWNhLCBhcmlhbCwgc2Fucy1zZXJpZjtcclxuJGZvbnQtYm9keTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuXHJcbiRsaWdodDogMzAwO1xyXG4kbm9ybWFsOiA0MDA7XHJcbiRib2xkOiA2MDA7XHJcbiRoZWF2eTogODAwO1xyXG5cclxuJHNpemUteHh4bDogNTBweDtcclxuJHNpemUteHhsOiAzMHB4O1xyXG4kc2l6ZS14bDogMjJweDtcclxuJHNpemUtbGc6IDE4cHg7XHJcbiRzaXplLW1kOiAxNXB4O1xyXG4kc2l6ZS1zbTogMTJweDtcclxuJHNpemUteHM6IDEwcHg7XHJcblxyXG4kYmFzZS1mb250LXNpemU6ICRzaXplLW1kO1xyXG4kYmFzZS1saW5lLWhlaWdodDogNnB4O1xyXG4kYWRqdXN0ZWQtbGluZS1oZWlnaHQ6IDI4cHg7XHJcblxyXG4kcmh5dGhtLXVuaXQ6IFwicmVtXCI7XHJcbiRyZW0td2l0aC1weC1mYWxsYmFjazogdHJ1ZTtcclxuXHJcbiRib3JkZXItcmFkaXVzLXNtOiAycHg7XHJcbiRib3JkZXItcmFkaXVzLW1kOiA0cHg7XHJcbiRib3JkZXItcmFkaXVzLWxnOiA4cHg7IiwiLyogZ2VuZXJhdGVkIHdpdGggZ3J1bnQtc2Fzcy1nbG9iYmluZyAqL1xyXG5AaW1wb3J0IFwiLi4vYWJzdHJhY3Rpb25zL2xheW91dFwiO1xyXG5AaW1wb3J0IFwiLi4vYWJzdHJhY3Rpb25zL3Nwcml0ZXMtMnhcIjtcclxuQGltcG9ydCBcIi4uL2Fic3RyYWN0aW9ucy9zcHJpdGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9hYnN0cmFjdGlvbnMvdHlwb2dyYXBoeVwiO1xyXG4iLCJcclxuJWRpdmlkZXItc2hhZG93IHtcclxuICAvKlxyXG4gICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKFxyXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwuMTUpLCByZ2JhKDAsMCwwLDApIDMwJSlcclxuICAgICAgKTtcclxuICAqL1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgLjE1KSwgcmdiYSgwLCAwLCAwLCAwKSAzMCUpLFxyXG4gIHJhZGlhbC1ncmFkaWVudCgxMDAlIDEwcHggYXQgNTAlIDFweCwgcmdiYSgwLCAwLCAwLCAwLjE1KSwgcmdiYSgwLCAwLCAwLCAwKSA1MCUpO1xyXG4gIHotaW5kZXg6IDU7XHJcblxyXG59XHJcblxyXG4lZGl2aWRlci1zaGFkb3ctYmVmb3JlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBoZWlnaHQ6IDhweDtcclxuXHJcbiAgICBAZXh0ZW5kICVkaXZpZGVyLXNoYWRvdztcclxuICB9XHJcbn1cclxuXHJcbiVkaXZpZGVyLXNoYWRvdy1hZnRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICY6YWZ0ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBib3R0b206IC04cHg7XHJcbiAgICBoZWlnaHQ6IDhweDtcclxuXHJcbiAgICBAZXh0ZW5kICVkaXZpZGVyLXNoYWRvdztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmdWxsLXdpZHRoLWJnKCRhcmdzLi4uKSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6ICRhcmdzO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnLWJwLCB0cnVlKSB7XHJcbiAgICB3aWR0aDogJGxnO1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICBjbGVhcjogYm90aDtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIGxlZnQ6IC0xMDAlO1xyXG4gICAgICB3aWR0aDogMzAwJTtcclxuICAgICAgdG9wOiAwcHg7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgYmFja2dyb3VuZDogJGFyZ3M7XHJcbiAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4oKSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IC05OTk5cHg7XHJcbn1cclxuXHJcbkBtaXhpbiB2aXN1YWxseS1ub3QtaGlkZGVuKCRsZWZ0OiBhdXRvKSB7XHJcbiAgcG9zaXRpb246IHN0YXRpYztcclxuICBsZWZ0OiAkbGVmdDtcclxufVxyXG5cclxuQG1peGluIGljb24tb24tZWxlbWVudCgkY2hhcikge1xyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBpY29uLWZvbnQtZmFtaWx5KCRjaGFyKTtcclxuICAgIEBpbmNsdWRlIGljb24tZm9udCgpO1xyXG4gICAgQGluY2x1ZGUgaWNvbi1jb250ZW50KCRjaGFyKTtcclxuICB9XHJcbn1cclxuIiwiLypcclxuU0NTUyB2YXJpYWJsZXMgYXJlIGluZm9ybWF0aW9uIGFib3V0IGljb24ncyBjb21waWxlZCBzdGF0ZSwgc3RvcmVkIHVuZGVyIGl0cyBvcmlnaW5hbCBmaWxlIG5hbWVcclxuXHJcbi5pY29uLWhvbWUge1xyXG4gIHdpZHRoOiAkaWNvbi1ob21lLXdpZHRoO1xyXG59XHJcblxyXG5UaGUgbGFyZ2UgYXJyYXktbGlrZSB2YXJpYWJsZXMgY29udGFpbiBhbGwgaW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgaWNvblxyXG4kaWNvbi1ob21lOiB4IHkgb2Zmc2V0X3ggb2Zmc2V0X3kgd2lkdGggaGVpZ2h0IHRvdGFsX3dpZHRoIHRvdGFsX2hlaWdodCBpbWFnZV9wYXRoO1xyXG5cclxuQXQgdGhlIGJvdHRvbSBvZiB0aGlzIHNlY3Rpb24sIHdlIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNwcml0ZXNoZWV0IGl0c2VsZlxyXG4kc3ByaXRlc2hlZXQ6IHdpZHRoIGhlaWdodCBpbWFnZSAkc3ByaXRlc2hlZXQtc3ByaXRlcztcclxuKi9cclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC0yeC1uYW1lOiAnc3ByaXRlX2xvZ29fY29sb3BsYXN0XzJ4JztcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC0yeC14OiAxNzhweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC0yeC15OiAwcHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtMngtb2Zmc2V0LXg6IC0xNzhweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC0yeC1vZmZzZXQteTogMHB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LTJ4LXdpZHRoOiAyNDBweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC0yeC1oZWlnaHQ6IDU2cHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtMngtdG90YWwtd2lkdGg6IDQxOHB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LTJ4LXRvdGFsLWhlaWdodDogNzZweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC0yeC1pbWFnZTogJy4uL2ltZy9zcHJpdGVzLTJ4LnBuZyc7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtMng6ICgxNzhweCwgMHB4LCAtMTc4cHgsIDBweCwgMjQwcHgsIDU2cHgsIDQxOHB4LCA3NnB4LCAnLi4vaW1nL3Nwcml0ZXMtMngucG5nJywgJ3Nwcml0ZV9sb2dvX2NvbG9wbGFzdF8yeCcsKTtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLTJ4LW5hbWU6ICdzcHJpdGVfbG9nb19jb2xvcGxhc3RfY2FyZV8yeCc7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtY2FyZS0yeC14OiAwcHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtY2FyZS0yeC15OiAwcHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtY2FyZS0yeC1vZmZzZXQteDogMHB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWNhcmUtMngtb2Zmc2V0LXk6IDBweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLTJ4LXdpZHRoOiAxNzhweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLTJ4LWhlaWdodDogNzZweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLTJ4LXRvdGFsLXdpZHRoOiA0MThweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLTJ4LXRvdGFsLWhlaWdodDogNzZweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLTJ4LWltYWdlOiAnLi4vaW1nL3Nwcml0ZXMtMngucG5nJztcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLTJ4OiAoMHB4LCAwcHgsIDBweCwgMHB4LCAxNzhweCwgNzZweCwgNDE4cHgsIDc2cHgsICcuLi9pbWcvc3ByaXRlcy0yeC5wbmcnLCAnc3ByaXRlX2xvZ29fY29sb3BsYXN0X2NhcmVfMngnLCk7XHJcbiRzcHJpdGVzaGVldC13aWR0aDogNDE4cHg7XHJcbiRzcHJpdGVzaGVldC1oZWlnaHQ6IDc2cHg7XHJcbiRzcHJpdGVzaGVldC1pbWFnZTogJy4uL2ltZy9zcHJpdGVzLTJ4LnBuZyc7XHJcbiRzcHJpdGVzaGVldC1zcHJpdGVzOiAoJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC0yeCwgJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLTJ4LCk7XHJcbiRzcHJpdGVzaGVldDogKDQxOHB4LCA3NnB4LCAnLi4vaW1nL3Nwcml0ZXMtMngucG5nJywgJHNwcml0ZXNoZWV0LXNwcml0ZXMsKTtcclxuXHJcbi8qXHJcblRoZSBwcm92aWRlZCBtaXhpbnMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0aGUgYXJyYXktbGlrZSB2YXJpYWJsZXNcclxuXHJcbi5pY29uLWhvbWUge1xyXG4gIEBpbmNsdWRlIHNwcml0ZS13aWR0aCgkaWNvbi1ob21lKTtcclxufVxyXG5cclxuLmljb24tZW1haWwge1xyXG4gIEBpbmNsdWRlIHNwcml0ZSgkaWNvbi1lbWFpbCk7XHJcbn1cclxuKi9cclxuQG1peGluIHNwcml0ZS13aWR0aCgkc3ByaXRlKSB7XHJcbiAgd2lkdGg6IG50aCgkc3ByaXRlLCA1KTtcclxufVxyXG5cclxuQG1peGluIHNwcml0ZS1oZWlnaHQoJHNwcml0ZSkge1xyXG4gIGhlaWdodDogbnRoKCRzcHJpdGUsIDYpO1xyXG59XHJcblxyXG5AbWl4aW4gc3ByaXRlLXBvc2l0aW9uKCRzcHJpdGUpIHtcclxuICAkc3ByaXRlLW9mZnNldC14OiBudGgoJHNwcml0ZSwgMyk7XHJcbiAgJHNwcml0ZS1vZmZzZXQteTogbnRoKCRzcHJpdGUsIDQpO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246ICRzcHJpdGUtb2Zmc2V0LXggJHNwcml0ZS1vZmZzZXQteTtcclxufVxyXG5cclxuQG1peGluIHNwcml0ZS1pbWFnZSgkc3ByaXRlKSB7XHJcbiAgJHNwcml0ZS1pbWFnZTogbnRoKCRzcHJpdGUsIDkpO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRzcHJpdGUtaW1hZ2V9KTtcclxufVxyXG5cclxuQG1peGluIHNwcml0ZSgkc3ByaXRlKSB7XHJcbiAgQGluY2x1ZGUgc3ByaXRlLWltYWdlKCRzcHJpdGUpO1xyXG4gIEBpbmNsdWRlIHNwcml0ZS1wb3NpdGlvbigkc3ByaXRlKTtcclxuICBAaW5jbHVkZSBzcHJpdGUtd2lkdGgoJHNwcml0ZSk7XHJcbiAgQGluY2x1ZGUgc3ByaXRlLWhlaWdodCgkc3ByaXRlKTtcclxufVxyXG5cclxuLypcclxuVGhlIGBzcHJpdGVzYCBtaXhpbiBnZW5lcmF0ZXMgaWRlbnRpY2FsIG91dHB1dCB0byB0aGUgQ1NTIHRlbXBsYXRlXHJcbiAgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBvZiBTQ1NTXHJcblxyXG5AaW5jbHVkZSBzcHJpdGVzKCRzcHJpdGVzaGVldC1zcHJpdGVzKTtcclxuKi9cclxuQG1peGluIHNwcml0ZXMoJHNwcml0ZXMpIHtcclxuICBAZWFjaCAkc3ByaXRlIGluICRzcHJpdGVzIHtcclxuICAgICRzcHJpdGUtbmFtZTogbnRoKCRzcHJpdGUsIDEwKTtcclxuICAgIC4jeyRzcHJpdGUtbmFtZX0ge1xyXG4gICAgICBAaW5jbHVkZSBzcHJpdGUoJHNwcml0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qXHJcblNDU1MgdmFyaWFibGVzIGFyZSBpbmZvcm1hdGlvbiBhYm91dCBpY29uJ3MgY29tcGlsZWQgc3RhdGUsIHN0b3JlZCB1bmRlciBpdHMgb3JpZ2luYWwgZmlsZSBuYW1lXHJcblxyXG4uaWNvbi1ob21lIHtcclxuICB3aWR0aDogJGljb24taG9tZS13aWR0aDtcclxufVxyXG5cclxuVGhlIGxhcmdlIGFycmF5LWxpa2UgdmFyaWFibGVzIGNvbnRhaW4gYWxsIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGljb25cclxuJGljb24taG9tZTogeCB5IG9mZnNldF94IG9mZnNldF95IHdpZHRoIGhlaWdodCB0b3RhbF93aWR0aCB0b3RhbF9oZWlnaHQgaW1hZ2VfcGF0aDtcclxuXHJcbkF0IHRoZSBib3R0b20gb2YgdGhpcyBzZWN0aW9uLCB3ZSBwcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcHJpdGVzaGVldCBpdHNlbGZcclxuJHNwcml0ZXNoZWV0OiB3aWR0aCBoZWlnaHQgaW1hZ2UgJHNwcml0ZXNoZWV0LXNwcml0ZXM7XHJcbiovXHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtbmFtZTogJ3Nwcml0ZV9sb2dvX2NvbG9wbGFzdCc7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QteDogODlweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC15OiAwcHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3Qtb2Zmc2V0LXg6IC04OXB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LW9mZnNldC15OiAwcHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3Qtd2lkdGg6IDEyMHB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWhlaWdodDogMjhweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC10b3RhbC13aWR0aDogMjA5cHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtdG90YWwtaGVpZ2h0OiAzOHB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWltYWdlOiAnLi4vaW1nL3Nwcml0ZXMucG5nJztcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdDogKDg5cHgsIDBweCwgLTg5cHgsIDBweCwgMTIwcHgsIDI4cHgsIDIwOXB4LCAzOHB4LCAnLi4vaW1nL3Nwcml0ZXMucG5nJywgJ3Nwcml0ZV9sb2dvX2NvbG9wbGFzdCcsKTtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLW5hbWU6ICdzcHJpdGVfbG9nb19jb2xvcGxhc3RfY2FyZSc7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtY2FyZS14OiAwcHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtY2FyZS15OiAwcHg7XHJcbiRzcHJpdGUtbG9nby1jb2xvcGxhc3QtY2FyZS1vZmZzZXQteDogMHB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWNhcmUtb2Zmc2V0LXk6IDBweDtcclxuJHNwcml0ZS1sb2dvLWNvbG9wbGFzdC1jYXJlLXdpZHRoOiA4OXB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWNhcmUtaGVpZ2h0OiAzOHB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWNhcmUtdG90YWwtd2lkdGg6IDIwOXB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWNhcmUtdG90YWwtaGVpZ2h0OiAzOHB4O1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWNhcmUtaW1hZ2U6ICcuLi9pbWcvc3ByaXRlcy5wbmcnO1xyXG4kc3ByaXRlLWxvZ28tY29sb3BsYXN0LWNhcmU6ICgwcHgsIDBweCwgMHB4LCAwcHgsIDg5cHgsIDM4cHgsIDIwOXB4LCAzOHB4LCAnLi4vaW1nL3Nwcml0ZXMucG5nJywgJ3Nwcml0ZV9sb2dvX2NvbG9wbGFzdF9jYXJlJywpO1xyXG4kc3ByaXRlc2hlZXQtd2lkdGg6IDIwOXB4O1xyXG4kc3ByaXRlc2hlZXQtaGVpZ2h0OiAzOHB4O1xyXG4kc3ByaXRlc2hlZXQtaW1hZ2U6ICcuLi9pbWcvc3ByaXRlcy5wbmcnO1xyXG4kc3ByaXRlc2hlZXQtc3ByaXRlczogKCRzcHJpdGUtbG9nby1jb2xvcGxhc3QsICRzcHJpdGUtbG9nby1jb2xvcGxhc3QtY2FyZSwpO1xyXG4kc3ByaXRlc2hlZXQ6ICgyMDlweCwgMzhweCwgJy4uL2ltZy9zcHJpdGVzLnBuZycsICRzcHJpdGVzaGVldC1zcHJpdGVzLCk7XHJcblxyXG4vKlxyXG5UaGUgcHJvdmlkZWQgbWl4aW5zIGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggdGhlIGFycmF5LWxpa2UgdmFyaWFibGVzXHJcblxyXG4uaWNvbi1ob21lIHtcclxuICBAaW5jbHVkZSBzcHJpdGUtd2lkdGgoJGljb24taG9tZSk7XHJcbn1cclxuXHJcbi5pY29uLWVtYWlsIHtcclxuICBAaW5jbHVkZSBzcHJpdGUoJGljb24tZW1haWwpO1xyXG59XHJcbiovXHJcbkBtaXhpbiBzcHJpdGUtd2lkdGgoJHNwcml0ZSkge1xyXG4gIHdpZHRoOiBudGgoJHNwcml0ZSwgNSk7XHJcbn1cclxuXHJcbkBtaXhpbiBzcHJpdGUtaGVpZ2h0KCRzcHJpdGUpIHtcclxuICBoZWlnaHQ6IG50aCgkc3ByaXRlLCA2KTtcclxufVxyXG5cclxuQG1peGluIHNwcml0ZS1wb3NpdGlvbigkc3ByaXRlKSB7XHJcbiAgJHNwcml0ZS1vZmZzZXQteDogbnRoKCRzcHJpdGUsIDMpO1xyXG4gICRzcHJpdGUtb2Zmc2V0LXk6IG50aCgkc3ByaXRlLCA0KTtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkc3ByaXRlLW9mZnNldC14ICRzcHJpdGUtb2Zmc2V0LXk7XHJcbn1cclxuXHJcbkBtaXhpbiBzcHJpdGUtaW1hZ2UoJHNwcml0ZSkge1xyXG4gICRzcHJpdGUtaW1hZ2U6IG50aCgkc3ByaXRlLCA5KTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skc3ByaXRlLWltYWdlfSk7XHJcbn1cclxuXHJcbkBtaXhpbiBzcHJpdGUoJHNwcml0ZSkge1xyXG4gIEBpbmNsdWRlIHNwcml0ZS1pbWFnZSgkc3ByaXRlKTtcclxuICBAaW5jbHVkZSBzcHJpdGUtcG9zaXRpb24oJHNwcml0ZSk7XHJcbiAgQGluY2x1ZGUgc3ByaXRlLXdpZHRoKCRzcHJpdGUpO1xyXG4gIEBpbmNsdWRlIHNwcml0ZS1oZWlnaHQoJHNwcml0ZSk7XHJcbn1cclxuXHJcbi8qXHJcblRoZSBgc3ByaXRlc2AgbWl4aW4gZ2VuZXJhdGVzIGlkZW50aWNhbCBvdXRwdXQgdG8gdGhlIENTUyB0ZW1wbGF0ZVxyXG4gIGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBpbnNpZGUgb2YgU0NTU1xyXG5cclxuQGluY2x1ZGUgc3ByaXRlcygkc3ByaXRlc2hlZXQtc3ByaXRlcyk7XHJcbiovXHJcbkBtaXhpbiBzcHJpdGVzKCRzcHJpdGVzKSB7XHJcbiAgQGVhY2ggJHNwcml0ZSBpbiAkc3ByaXRlcyB7XHJcbiAgICAkc3ByaXRlLW5hbWU6IG50aCgkc3ByaXRlLCAxMCk7XHJcbiAgICAuI3skc3ByaXRlLW5hbWV9IHtcclxuICAgICAgQGluY2x1ZGUgc3ByaXRlKCRzcHJpdGUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJcclxuJWFydGljbGUtY29weSB7XHJcbiAgcCB7XHJcbiAgICBtYXgtd2lkdGg6IDc1JTtcclxuICB9XHJcbn0iLCIvKiBnZW5lcmF0ZWQgd2l0aCBncnVudC1zYXNzLWdsb2JiaW5nICovXHJcbkBpbXBvcnQgXCIuLi9iYXNlL2NjX2ljb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9iYXNlL2VsZW1lbnRzXCI7XHJcbkBpbXBvcnQgXCIuLi9iYXNlL2ljb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9iYXNlL2xheW91dFwiO1xyXG5AaW1wb3J0IFwiLi4vYmFzZS9saW5rc1wiO1xyXG5AaW1wb3J0IFwiLi4vYmFzZS90eXBvZ3JhcGh5XCI7XHJcbiIsIiRzb2NpYWxfeW91dHViZS1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kc29jaWFsX3lvdXR1YmUtdmFsdWU6IFwiXFxlMDAxXCI7XHJcbiRzb2NpYWxfeW91dHViZTogXCJjYy1pY29uc1wiIFwiXFxlMDAxXCI7XHJcbiRnZW5kZXItZmVtYWxlLW91dGxpbmUtZm9udC1mYW1pbHk6IFwiY2MtaWNvbnNcIjtcclxuJGdlbmRlci1mZW1hbGUtb3V0bGluZS12YWx1ZTogXCJcXGUwMTFcIjtcclxuJGdlbmRlci1mZW1hbGUtb3V0bGluZTogXCJjYy1pY29uc1wiIFwiXFxlMDExXCI7XHJcbiRhcnJvdy1yaWdodC1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kYXJyb3ctcmlnaHQtdmFsdWU6IFwiXFxlMDFlXCI7XHJcbiRhcnJvdy1yaWdodDogXCJjYy1pY29uc1wiIFwiXFxlMDFlXCI7XHJcbiRmZWF0dXJlLWVhc3ktb3Blbi1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kZmVhdHVyZS1lYXN5LW9wZW4tdmFsdWU6IFwiXFxlMDE3XCI7XHJcbiRmZWF0dXJlLWVhc3ktb3BlbjogXCJjYy1pY29uc1wiIFwiXFxlMDE3XCI7XHJcbiRmZWF0dXJlLXByZWNvbm5lY3RlZC1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kZmVhdHVyZS1wcmVjb25uZWN0ZWQtdmFsdWU6IFwiXFxlMDEzXCI7XHJcbiRmZWF0dXJlLXByZWNvbm5lY3RlZDogXCJjYy1pY29uc1wiIFwiXFxlMDEzXCI7XHJcbiRpbmZvLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRpbmZvLXZhbHVlOiBcIlxcZTAwZFwiO1xyXG4kaW5mbzogXCJjYy1pY29uc1wiIFwiXFxlMDBkXCI7XHJcbiRwbHVzLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRwbHVzLXZhbHVlOiBcIlxcZTAwOFwiO1xyXG4kcGx1czogXCJjYy1pY29uc1wiIFwiXFxlMDA4XCI7XHJcbiRjbG9zZS1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kY2xvc2UtdmFsdWU6IFwiXFxlMDFhXCI7XHJcbiRjbG9zZTogXCJjYy1pY29uc1wiIFwiXFxlMDFhXCI7XHJcbiRnZW5kZXItbWFsZS1vdXRsaW5lLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRnZW5kZXItbWFsZS1vdXRsaW5lLXZhbHVlOiBcIlxcZTAwZlwiO1xyXG4kZ2VuZGVyLW1hbGUtb3V0bGluZTogXCJjYy1pY29uc1wiIFwiXFxlMDBmXCI7XHJcbiRmZWF0dXJlLWh5Z2VuaWMtZm9udC1mYW1pbHk6IFwiY2MtaWNvbnNcIjtcclxuJGZlYXR1cmUtaHlnZW5pYy12YWx1ZTogXCJcXGUwMTVcIjtcclxuJGZlYXR1cmUtaHlnZW5pYzogXCJjYy1pY29uc1wiIFwiXFxlMDE1XCI7XHJcbiRtZWRpYS1wbGF5LWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRtZWRpYS1wbGF5LXZhbHVlOiBcIlxcZTAwY1wiO1xyXG4kbWVkaWEtcGxheTogXCJjYy1pY29uc1wiIFwiXFxlMDBjXCI7XHJcbiRzb2NpYWxfZmFjZWJvb2stZm9udC1mYW1pbHk6IFwiY2MtaWNvbnNcIjtcclxuJHNvY2lhbF9mYWNlYm9vay12YWx1ZTogXCJcXGUwMDVcIjtcclxuJHNvY2lhbF9mYWNlYm9vazogXCJjYy1pY29uc1wiIFwiXFxlMDA1XCI7XHJcbiRmZWF0dXJlLXNpemUtdmFyaWV0eS1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kZmVhdHVyZS1zaXplLXZhcmlldHktdmFsdWU6IFwiXFxlMDEyXCI7XHJcbiRmZWF0dXJlLXNpemUtdmFyaWV0eTogXCJjYy1pY29uc1wiIFwiXFxlMDEyXCI7XHJcbiRuYXZiYXJzLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRuYXZiYXJzLXZhbHVlOiBcIlxcZTAwYlwiO1xyXG4kbmF2YmFyczogXCJjYy1pY29uc1wiIFwiXFxlMDBiXCI7XHJcbiRmZWF0dXJlLWRpc2NyZXRlLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRmZWF0dXJlLWRpc2NyZXRlLXZhbHVlOiBcIlxcZTAxOFwiO1xyXG4kZmVhdHVyZS1kaXNjcmV0ZTogXCJjYy1pY29uc1wiIFwiXFxlMDE4XCI7XHJcbiRwaG9uZS1vdXRsaW5lLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRwaG9uZS1vdXRsaW5lLXZhbHVlOiBcIlxcZTAwOVwiO1xyXG4kcGhvbmUtb3V0bGluZTogXCJjYy1pY29uc1wiIFwiXFxlMDA5XCI7XHJcbiRjaGVja21hcmstZm9udC1mYW1pbHk6IFwiY2MtaWNvbnNcIjtcclxuJGNoZWNrbWFyay12YWx1ZTogXCJcXGUwMWJcIjtcclxuJGNoZWNrbWFyazogXCJjYy1pY29uc1wiIFwiXFxlMDFiXCI7XHJcbiRzZWFyY2gtZm9udC1mYW1pbHk6IFwiY2MtaWNvbnNcIjtcclxuJHNlYXJjaC12YWx1ZTogXCJcXGUwMDdcIjtcclxuJHNlYXJjaDogXCJjYy1pY29uc1wiIFwiXFxlMDA3XCI7XHJcbiRmZWF0dXJlLWluc3RhbnQtZm9udC1mYW1pbHk6IFwiY2MtaWNvbnNcIjtcclxuJGZlYXR1cmUtaW5zdGFudC12YWx1ZTogXCJcXGUwMTRcIjtcclxuJGZlYXR1cmUtaW5zdGFudDogXCJjYy1pY29uc1wiIFwiXFxlMDE0XCI7XHJcbiRnZW5kZXItZmVtYWxlLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRnZW5kZXItZmVtYWxlLXZhbHVlOiBcIlxcZTAxMFwiO1xyXG4kZ2VuZGVyLWZlbWFsZTogXCJjYy1pY29uc1wiIFwiXFxlMDEwXCI7XHJcbiRzaWduLXVwLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRzaWduLXVwLXZhbHVlOiBcIlxcZTAwNlwiO1xyXG4kc2lnbi11cDogXCJjYy1pY29uc1wiIFwiXFxlMDA2XCI7XHJcbiRmZWF0dXJlLWVhc3ktdXNlLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRmZWF0dXJlLWVhc3ktdXNlLXZhbHVlOiBcIlxcZTAxNlwiO1xyXG4kZmVhdHVyZS1lYXN5LXVzZTogXCJjYy1pY29uc1wiIFwiXFxlMDE2XCI7XHJcbiRhcnJvdy11cC1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kYXJyb3ctdXAtdmFsdWU6IFwiXFxlMDFkXCI7XHJcbiRhcnJvdy11cDogXCJjYy1pY29uc1wiIFwiXFxlMDFkXCI7XHJcbiRib3gtb3Blbi1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kYm94LW9wZW4tdmFsdWU6IFwiXFxlMDFjXCI7XHJcbiRib3gtb3BlbjogXCJjYy1pY29uc1wiIFwiXFxlMDFjXCI7XHJcbiRhcnJvdy1kb3duLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRhcnJvdy1kb3duLXZhbHVlOiBcIlxcZTAyMFwiO1xyXG4kYXJyb3ctZG93bjogXCJjYy1pY29uc1wiIFwiXFxlMDIwXCI7XHJcbiRhcnJvdy1sZWZ0LWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRhcnJvdy1sZWZ0LXZhbHVlOiBcIlxcZTAxZlwiO1xyXG4kYXJyb3ctbGVmdDogXCJjYy1pY29uc1wiIFwiXFxlMDFmXCI7XHJcbiR0cmVlLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiR0cmVlLXZhbHVlOiBcIlxcZTAwMFwiO1xyXG4kdHJlZTogXCJjYy1pY29uc1wiIFwiXFxlMDAwXCI7XHJcbiRzb2NpYWxfZ29vZ2xlcGx1cy1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kc29jaWFsX2dvb2dsZXBsdXMtdmFsdWU6IFwiXFxlMDA0XCI7XHJcbiRzb2NpYWxfZ29vZ2xlcGx1czogXCJjYy1pY29uc1wiIFwiXFxlMDA0XCI7XHJcbiRzb2NpYWxfaW5zdGFncmFtLWZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiRzb2NpYWxfaW5zdGFncmFtLXZhbHVlOiBcIlxcZTAwM1wiO1xyXG4kc29jaWFsX2luc3RhZ3JhbTogXCJjYy1pY29uc1wiIFwiXFxlMDAzXCI7XHJcbiRmZWF0dXJlLWN1cnZlZC10aXAtZm9udC1mYW1pbHk6IFwiY2MtaWNvbnNcIjtcclxuJGZlYXR1cmUtY3VydmVkLXRpcC12YWx1ZTogXCJcXGUwMTlcIjtcclxuJGZlYXR1cmUtY3VydmVkLXRpcDogXCJjYy1pY29uc1wiIFwiXFxlMDE5XCI7XHJcbiRzb2NpYWxfdHdpdHRlci1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kc29jaWFsX3R3aXR0ZXItdmFsdWU6IFwiXFxlMDAyXCI7XHJcbiRzb2NpYWxfdHdpdHRlcjogXCJjYy1pY29uc1wiIFwiXFxlMDAyXCI7XHJcbiRnZW5kZXItbWFsZS1mb250LWZhbWlseTogXCJjYy1pY29uc1wiO1xyXG4kZ2VuZGVyLW1hbGUtdmFsdWU6IFwiXFxlMDBlXCI7XHJcbiRnZW5kZXItbWFsZTogXCJjYy1pY29uc1wiIFwiXFxlMDBlXCI7XHJcbiRwZW5jaWwtZm9udC1mYW1pbHk6IFwiY2MtaWNvbnNcIjtcclxuJHBlbmNpbC12YWx1ZTogXCJcXGUwMGFcIjtcclxuJHBlbmNpbDogXCJjYy1pY29uc1wiIFwiXFxlMDBhXCI7XHJcblxyXG5AbWl4aW4gaWNvbi1mb250LWZhbWlseSgkY2hhcikge1xyXG4gIGZvbnQtZmFtaWx5OiBudGgoJGNoYXIsIDEpO1xyXG59XHJcblxyXG5AbWl4aW4gaWNvbi1mb250KCkge1xyXG4gIHNwZWFrOiBub25lO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG59XHJcblxyXG5AbWl4aW4gaWNvbi1jb250ZW50KCRjaGFyKSB7XHJcbiAgY29udGVudDogbnRoKCRjaGFyLCAyKTtcclxufVxyXG5cclxuQG1peGluIGljb24oJGNoYXIpIHtcclxuICBAaW5jbHVkZSBpY29uLWZvbnQtZmFtaWx5KCRjaGFyKTtcclxuICBAaW5jbHVkZSBpY29uLWZvbnQoKTtcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgaWNvbi1jb250ZW50KCRjaGFyKTtcclxuICB9XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBcImNjLWljb25zXCI7XHJcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9jYy1pY29ucy5lb3RcIik7XHJcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9jYy1pY29ucy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxyXG4gIHVybChcIi4uL2ZvbnRzL2NjLWljb25zLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcclxuICB1cmwoXCIuLi9mb250cy9jYy1pY29ucy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXHJcbiAgdXJsKFwiLi4vZm9udHMvY2MtaWNvbnMuc3ZnI2ljb21vb25cIikgZm9ybWF0KFwic3ZnXCIpO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcbiIsImltZyB7XHJcbiAgYm9yZGVyOiAwO1xyXG59IiwiJGljb24tYXJyb3ctZG93bjogXCJcXGU5MGRcIjtcclxuJGljb24tYXJyb3ctdXA6XCJcXGU5MTBcIjtcclxuJGljb24tYXJyb3ctcmlnaHQ6XCJcXGU5MGZcIjtcclxuXHJcbi5pY29uIHtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdjYy1pY29ucyc7XHJcbiAgc3JjOiAgICB1cmwoJy4uL2ZvbnRzL2NjLWljb25zLmVvdD83enVieWonKTtcclxuICBzcmM6ICAgIHVybCgnLi4vZm9udHMvY2MtaWNvbnMuZW90Pzd6dWJ5aiNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICB1cmwoJy4uL2ZvbnRzL2NjLWljb25zLnR0Zj83enVieWonKSBmb3JtYXQoJ3RydWV0eXBlJyksXHJcbiAgdXJsKCcuLi9mb250cy9jYy1pY29ucy53b2ZmPzd6dWJ5aicpIGZvcm1hdCgnd29mZicpLFxyXG4gIHVybCgnLi4vZm9udHMvY2MtaWNvbnMuc3ZnPzd6dWJ5aiNjYy1pY29ucycpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbltjbGFzc149XCJpY29uLVwiXTpub3QoLmljb24taW5wdXQtZ3JvdXApLCBbY2xhc3MqPVwiIGljb24tXCJdOm5vdCguaWNvbi1pbnB1dC1ncm91cCksICVpY29uLWZvbnQge1xyXG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXHJcbiAgZm9udC1mYW1pbHk6ICdjYy1pY29ucycgIWltcG9ydGFudDtcclxuICBzcGVhazogbm9uZTtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuXHJcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxufVxyXG5cclxuQG1peGluIGljb24tYmVmb3JlKCRjaGFyKSB7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJGNoYXI7XHJcbiAgICBmb250LWZhbWlseTogJ2NjLWljb25zJyAhaW1wb3J0YW50O1xyXG4gICAgc3BlYWs6IG5vbmU7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIH1cclxufVxyXG5cclxuLmljb24tYXJyb3ctbGVmdC1iaWc6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkwMlwiO1xyXG59XHJcbi5pY29uLWFycm93LXJpZ2h0LWJpZzpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTAzXCI7XHJcbn1cclxuLmljb24tTGlnaHRDb252ZXg6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkwMVwiO1xyXG59XHJcbi5pY29uLURlZXBDb252ZXg6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkwMFwiO1xyXG59XHJcbi5pY29uLVNvZnRDb252ZXg6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkwNlwiO1xyXG59XHJcbi5pY29uLXNwZWVjaEJ1YmJsZXM6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkyZVwiO1xyXG59XHJcbi5pY29uLWFycm93LWRvd246YmVmb3JlIHtcclxuICBjb250ZW50OiAkaWNvbi1hcnJvdy1kb3duO1xyXG59XHJcbi5pY29uLWFycm93LWxlZnQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkwZVwiO1xyXG59XHJcbi5pY29uLWFycm93LXJpZ2h0OmJlZm9yZSB7XHJcbiAgY29udGVudDogJGljb24tYXJyb3ctcmlnaHQ7XHJcbn1cclxuLmljb24tYXJyb3ctdXA6YmVmb3JlIHtcclxuICBjb250ZW50OiAkaWNvbi1hcnJvdy11cDtcclxufVxyXG4uaWNvbi1ib3gtb3BlbjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTExXCI7XHJcbn1cclxuLmljb24tY2hlY2ttYXJrOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MTJcIjtcclxufVxyXG4uaWNvbi1jbG9zZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTEzXCI7XHJcbn1cclxuLmljb24tZmVhdHVyZS1jdXJ2ZWQtdGlwOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MTRcIjtcclxufVxyXG4uaWNvbi1mZWF0dXJlLWRpc2NyZXRlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MTVcIjtcclxufVxyXG4uaWNvbi1mZWF0dXJlLWVhc3ktb3BlbjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTE2XCI7XHJcbn1cclxuLmljb24tZmVhdHVyZS1lYXN5LXVzZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTE3XCI7XHJcbn1cclxuLmljb24tZmVhdHVyZS1oeWdlbmljOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MThcIjtcclxufVxyXG4uaWNvbi1mZWF0dXJlLWluc3RhbnQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkxOVwiO1xyXG59XHJcbi5pY29uLWZlYXR1cmUtcHJlY29ubmVjdGVkOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MWFcIjtcclxufVxyXG4uaWNvbi1mZWF0dXJlLXNpemUtdmFyaWV0eTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTFiXCI7XHJcbn1cclxuLmljb24tZ2VuZGVyLWZlbWFsZS1vdXRsaW5lOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MWNcIjtcclxufVxyXG4uaWNvbi1nZW5kZXItZmVtYWxlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MWRcIjtcclxufVxyXG4uaWNvbi1nZW5kZXItbWFsZS1vdXRsaW5lOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MWVcIjtcclxufVxyXG4uaWNvbi1nZW5kZXItbWFsZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTFmXCI7XHJcbn1cclxuLmljb24taW5mbzpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTIwXCI7XHJcbn1cclxuLmljb24tbWVkaWEtcGxheTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTIxXCI7XHJcbn1cclxuLmljb24tbmF2YmFyczpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTIyXCI7XHJcbn1cclxuLmljb24tcGVuY2lsOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MjNcIjtcclxufVxyXG4uaWNvbi1waG9uZS1vdXRsaW5lOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MjRcIjtcclxufVxyXG4uaWNvbi1wbHVzOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MjVcIjtcclxufVxyXG4uaWNvbi1zZWFyY2g6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkyNlwiO1xyXG59XHJcbi5pY29uLXNpZ24tdXA6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkyN1wiO1xyXG59XHJcbi5pY29uLXNvY2lhbF9mYWNlYm9vazpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTI4XCI7XHJcbn1cclxuLmljb24tc29jaWFsX2dvb2dsZXBsdXM6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkyOVwiO1xyXG59XHJcbi5pY29uLXNvY2lhbF9pbnN0YWdyYW06YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkyYVwiO1xyXG59XHJcbi5pY29uLXNvY2lhbF90d2l0dGVyOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MmJcIjtcclxufVxyXG4uaWNvbi1zb2NpYWxfeW91dHViZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTJjXCI7XHJcbn1cclxuLmljb24tdHJlZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTJkXCI7XHJcbn1cclxuXHJcblxyXG4iLCIvKiBhcHBseSBhIG5hdHVyYWwgYm94IGxheW91dCBtb2RlbCB0byBhbGwgZWxlbWVudHMsIGJ1dCBhbGxvd2luZyBjb21wb25lbnRzIHRvIGNoYW5nZSAqL1xyXG5odG1sIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XHJcbiAgYm94LXNpemluZzogaW5oZXJpdDtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbjogMDtcclxuXHJcbiAgJi5wYWdlLWFydGljbGUsXHJcbiAgJi5wYWdlLXByb2R1Y3Qge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICB9XHJcblxyXG59XHJcblxyXG4ubWFpbi1jb250ZW50IHtcclxuICA+ICogKyAqLCA+IC5keW5CbG9jayA+ICogKyAqIHtcclxuICAgIG1hcmdpbi10b3A6IHJoeXRobSg2KTtcclxuICB9XHJcbiAgdHJhbnNpdGlvbjogYmx1ciAuMTVzIGVhc2UtaW4tb3V0O1xyXG4gICYucG9wdXAge1xyXG4gICAgZmlsdGVyOiBibHVyKDI1cHgpO1xyXG4gICAgLm5vLWNzc2ZpbHRlcnMgJiB7XHJcbiAgICAgIG9wYWNpdHk6IDAuNDtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uY29udGVudC13cmFwcGVyIHtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgcGFkZGluZy1sZWZ0OiAkY29udGVudC1tYXJnaW47XHJcbiAgcGFkZGluZy1yaWdodDogJGNvbnRlbnQtbWFyZ2luO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgbWF4LXdpZHRoOiAkbGcgKyAoMiAqICRjb250ZW50LW1hcmdpbi1lbSk7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAucmVsYXRlZCAmLFxyXG4gIC5hbmltYXRpb25zICYge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20pIHtcclxuICAgICAgbWF4LXdpZHRoOiAkbGcgKyAoNCAqICRjb250ZW50LW1hcmdpbi1lbSk7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogJGNvbnRlbnQtbWFyZ2luICogMjtcclxuICAgICAgcGFkZGluZy1yaWdodDogJGNvbnRlbnQtbWFyZ2luICogMjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb3JtLXBhZ2UgJiB7XHJcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZmxvYXQtcmlnaHQge1xyXG4gIGZsb2F0OiByaWdodDtcclxufVxyXG4udGV4dC1yaWdodCB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuLnRleHQtY2VudGVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi53aWR0aC01MCB7XHJcbiAgcGFkZGluZy1ib3R0b206IDVweDtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkY29udGVudC1tYXJnaW4vMjtcclxuICAgIH1cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogJGNvbnRlbnQtbWFyZ2luLzI7XHJcbiAgICB9XHJcbiAgICBmb3JtICYge1xyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICAgIH1cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCIgXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICB9XHJcbiAgJjphZnRlciB7XHJcbiAgICAqem9vbTogMTtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gIH1cclxufVxyXG5cclxuJWNsZWFyZml4IHtcclxuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG59XHJcblxyXG4vLyBNSVhJTiBGT1IgQ09OVFJPTExJTkcgQlJFQUtQT0lOVFNcclxuQG1peGluIGJyZWFrR3JpZCgkd2lkdGgpIHtcclxuICAvLyBCUkVBSyBPVVQgT04gU01BTExcclxuICAmLnNtLWJyZWFrIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XHJcbiAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBCUkVBSyBPVVQgT04gTUVESVVNXHJcbiAgJi5tZC1icmVhayB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xyXG4gICAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFwiRkFMTCBCQUNLIEJSRUFLXCIgaWYgbm90IGRlZmluZWQgdGhlIFhTTUFMTCBPTkVcclxuICAmOm5vdCguc20tYnJlYWspOm5vdCgubWQtYnJlYWspIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcbiAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuICAuaWU4ICYge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcclxuICAgICAgd2lkdGg6ICgkd2lkdGgpIC0gMSU7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMSU7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5yb3cge1xyXG4gIG1hcmdpbjogMCAoLSRjb250ZW50LW1hcmdpbi8yKTtcclxuICBAZXh0ZW5kICVjbGVhcmZpeDtcclxuICArIC5jaGVja2JveC1ncm91cCB7XHJcbiAgICBtYXJnaW4tdG9wOiAoLSRjb250ZW50LW1hcmdpbi8yKTtcclxuICB9XHJcbn1cclxuLndpZHRoLTEtMSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgcGFkZGluZzogMCAkY29udGVudC1tYXJnaW4vMiAwICRjb250ZW50LW1hcmdpbi8yO1xyXG4gIC5mb3JtLWhlYWRlciAmIHtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogJGNvbnRlbnQtbWFyZ2luLzI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6ICRjb250ZW50LW1hcmdpbi8yO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi53aWR0aC0xLTIge1xyXG4gIEBpbmNsdWRlIGJyZWFrR3JpZCg1MCUpO1xyXG4gIHBhZGRpbmc6IDAgJGNvbnRlbnQtbWFyZ2luLzIgMCAkY29udGVudC1tYXJnaW4vMjtcclxuICBtYXJnaW4tYm90dG9tOiAkY29udGVudC1tYXJnaW4vMjtcclxuICAud2lkdGgtMS0yIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG4gID4gLmlucHV0LXRleHQge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLndpZHRoLTEtMyB7XHJcbiAgQGluY2x1ZGUgYnJlYWtHcmlkKDEwMC8zICogMSUpO1xyXG4gIG1hcmdpbi1ib3R0b206ICRjb250ZW50LW1hcmdpbi80O1xyXG4gIHBhZGRpbmc6IDAgKCRjb250ZW50LW1hcmdpbi8yKTtcclxuICAvLy53aWR0aC0xLTIgJiB7XHJcbiAgLy8gIHBhZGRpbmctcmlnaHQ6ICgkY29udGVudC1tYXJnaW4vNCk7XHJcblx0Ly8gICY6bGFzdC1jaGlsZCB7XHJcblx0Ly9cdCAgcGFkZGluZy1yaWdodDogJGNvbnRlbnQtbWFyZ2luLWVtLzI7XHJcblx0Ly8gIH1cclxuICAvL31cclxuICAmOm50aC1jaGlsZCgzbiArIDEpIHtcclxuICAgIGNsZWFyOiBsZWZ0O1xyXG4gIH1cclxuICAmOm50aC1jaGlsZCg0bikge1xyXG4gICAgLy9jbGVhcjogbGVmdDtcclxuICB9XHJcbn1cclxuLndpZHRoLWxpbWl0IHtcclxuICBtYXgtd2lkdGg6IDYwMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4uYm9yZGVyLWJvdHRvbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogJGNvbnRlbnQtbWFyZ2luLzI7XHJcbiAgcGFkZGluZy1ib3R0b206ICRjb250ZW50LW1hcmdpbi8yO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYm9yZGVycztcclxufVxyXG4uYm9yZGVyLXRvcCB7XHJcbiAgbWFyZ2luLXRvcDogJGNvbnRlbnQtbWFyZ2luO1xyXG4gIHBhZGRpbmctdG9wOiAkY29udGVudC1tYXJnaW4vMjtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcnM7XHJcbn1cclxuXHJcblxyXG4ucmVjb21tZW5kZWQge1xyXG5cdGJhY2tncm91bmQ6ICRsaWdodGVzdC1ncmF5O1xyXG59XHJcbi5yZWxhdGVkLFxyXG4uYW5pbWF0aW9ucyB7XHJcblx0KyAucmVjb21tZW5kZWQge1xyXG5cdFx0YmFja2dyb3VuZDogbm9uZTtcclxuXHR9XHJcbn0iLCJcclxuJWJ1dHRvbixcclxuLmJ1dHRvbiB7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTVzIGVhc2UtaW4tb3V0O1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRiYXNlLWZvbnQtc2l6ZSk7XHJcbiAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oNik7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDAgcmh5dGhtKDIpO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBjb2xvcjogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWhlYWRlcjtcclxuICAubm8tdG91Y2ggJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGNvbG9yLXByaW1hcnksIDUlKTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgLmljb24ge1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5pbnB1dC1zdWJtaXQge1xyXG4gICAgJi5kaXNhYmxlZCB7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjYmNiY2JjO1xyXG4gIH1cclxufVxyXG5cclxuYS5idXR0b24ge1xyXG4gIG1pbi13aWR0aDogMTgwcHg7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAmLmRpc2FibGVkIHtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNiY2JjYmM7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gIH1cclxufVxyXG5cclxudWwudGV4dC1idXR0b25zIHtcclxuICBtYXJnaW4tbGVmdDogMDtcclxuICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgbGkge1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICYgKyBsaSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJoeXRobSgyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgQGV4dGVuZCAlYnV0dG9uO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygzKTtcclxuICAgIHBhZGRpbmc6IHJoeXRobSgyKSByaHl0aG0oNik7XHJcbiAgfVxyXG59IiwiQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhTmV1ZVcwMVwiO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udHMvYWUxNjU2YWEtNWY4Zi00OTA1LWFlZDAtOTNlNjY3YmQ2ZTRhLWFiZjc1ZmIwMDQ4YTY0NTM0ODc1ODNkOTdlNTQwYzg4NmEzMGJiNDAuZW90PyNpZWZpeFwiKTtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2FOZXVlLUxpZ2h0JyksXHJcbiAgbG9jYWwoJ0hlbHZldGljYSBOZXVlIExpZ2h0JyksXHJcbiAgdXJsKFwiLi4vZm9udHMvYWUxNjU2YWEtNWY4Zi00OTA1LWFlZDAtOTNlNjY3YmQ2ZTRhLWFiZjc1ZmIwMDQ4YTY0NTM0ODc1ODNkOTdlNTQwYzg4NmEzMGJiNDAuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksXHJcbiAgdXJsKFwiLi4vZm9udHMvNTMwZGVlMjItZTNjMS00ZTlmLWJmNjItYzMxZDUxMGQ5NjU2LWQzZjVlZDcyNzIyZWZhZjQzNjI2NWM0M2EwMTRmZGQwY2ZkNzc3Mzcud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxyXG4gIHVybChcIi4uL2ZvbnRzLzY4OGFiNzJiLTRkZWItNGUxNS1hMDg4LTg5MTY2OTc4ZDQ2OS00Mzc3N2UzNTJjMTBiNWUwNTkzOWRiMTQ0YmVlODJiNzNkODU4NDkxLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcclxuICB1cmwoXCIuLi9mb250cy83ODE2ZjcyZi1mNDdlLTQ3MTUtOGNkNy05NjBlMzcyMzg0NmEtNzJmYjRmYzVmYzc4ZWNiNzRjMWEzYzE3MTIxMjllYjRkMGViYWE2Yi5zdmcjNzgxNmY3MmYtZjQ3ZS00NzE1LThjZDctOTYwZTM3MjM4NDZhXCIpIGZvcm1hdChcInN2Z1wiKTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhTmV1ZVcwMVwiO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udHMvYjc2OTNhODMtYjg2MS00YWE2LTg1ZTAtOWVjZjY3NmJjNGQ2LTFmMzRmYTg5NjJkYmExN2RkNDIwODAyNTEzZjkyZTY0NjY0M2MxNDIuZW90PyNpZWZpeFwiKTtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2FOZXVlLVJvbWFuJyksXHJcbiAgbG9jYWwoJ0hlbHZldGljYSBOZXVlIFJvbWFuJyksXHJcbiAgdXJsKFwiLi4vZm9udHMvYjc2OTNhODMtYjg2MS00YWE2LTg1ZTAtOWVjZjY3NmJjNGQ2LTFmMzRmYTg5NjJkYmExN2RkNDIwODAyNTEzZjkyZTY0NjY0M2MxNDIuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksXHJcbiAgdXJsKFwiLi4vZm9udHMvYmNmNTQzNDMtZDAzMy00MWVlLWJiZDctMmI3N2RmM2ZlN2JhLTY5YmViZWZlOWVkZWFjODVjYzI3NTE2ZGJlMGVhMTc2YzFjMmMyNWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxyXG4gIHVybChcIi4uL2ZvbnRzL2IwZmZkY2YwLTI2ZGEtNDdmZC04NDg1LTIwZTRhNDBkNGI3ZC03MzJhNmFmZmJlMzQ1ZTcwOTNjMTJmNWMwYTNjNmIzNmZjNWM3MGU2LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcclxuICB1cmwoXCIuLi9mb250cy9kYTA5ZjFmMS0wNjJhLTQ1YWYtODZlMS0yYmJkYjNkZDk0ZjktN2MxYTFmMzg2ZTRiYTA5MWU3YzM1NGEwOTEzZjUxZTI0N2E2NmNjNi5zdmcjZGEwOWYxZjEtMDYyYS00NWFmLTg2ZTEtMmJiZGIzZGQ5NGY5XCIpIGZvcm1hdChcInN2Z1wiKTtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhTmV1ZVcwMVwiO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udHMvMDdmZTBmZWMtYjYzZi00OTYzLThlZTEtNTM1NTI4YjY3ZmRiLWZlNTZhMzgxMjlmYmJlOWIxZmY2ZTJiNTRhN2I5YjM0MDliMzIyYjkuZW90PyNpZWZpeFwiKTtcclxuICBzcmM6IGxvY2FsKCdIZWx2ZXRpY2FOZXVlLU1lZGl1bScpLFxyXG4gIGxvY2FsKCdIZWx2ZXRpY2EgTmV1ZSBNZWRpdW0nKSxcclxuICB1cmwoXCIuLi9mb250cy8wN2ZlMGZlYy1iNjNmLTQ5NjMtOGVlMS01MzU1MjhiNjdmZGItZmU1NmEzODEyOWZiYmU5YjFmZjZlMmI1NGE3YjliMzQwOWIzMjJiOS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSxcclxuICB1cmwoXCIuLi9mb250cy82MGJlNWMzOS04NjNlLTQwY2ItOTQzNC02ZWJhZmI2MmFiMmItMjkyMGU5MWIxZTZhZDA5YTVlMTBjZDNhYzQ1MDVkZDUxNjMyYWNiYS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXHJcbiAgdXJsKFwiLi4vZm9udHMvNGM2NTAzYzktODU5Yi00ZDNiLWExZDUtMmQ0MmUxMjIyNDE1LWNiMTEzZGQ5NjNhNGQxMzQ5ODk1YjdiZDg0OWJjNGFlNjA4ZWIwYTgudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLFxyXG4gIHVybChcIi4uL2ZvbnRzLzM2YzE4MmM2LWVmOTgtNDAyMS05YjBkLWQ2MzEyMmMyYmJmNS02NjgyMWY3YjU3ZGJmZTI4NWU0MDBjOGIxZDM5Y2Y2N2VjMTk2ZGExLnN2ZyMzNmMxODJjNi1lZjk4LTQwMjEtOWIwZC1kNjMxMjJjMmJiZjVcIikgZm9ybWF0KFwic3ZnXCIpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2FOZXVlVzAxXCI7XHJcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9jMDdmZWY5ZS1hOTM0LTQyZDctOTJhZC02OTIwNWYyYjhhMDAtYmI3OTA4MTJiOWM3MmFiYzkyMDIyOGRhYjg5YTYxYjlhZTdhYTQ1Ny5lb3Q/I2llZml4XCIpO1xyXG4gIHNyYzogbG9jYWwoJ0hlbHZldGljYU5ldWUtQm9sZCcpLFxyXG4gIGxvY2FsKCdIZWx2ZXRpY2EgTmV1ZSBCb2xkJyksXHJcbiAgdXJsKFwiLi4vZm9udHMvYzA3ZmVmOWUtYTkzNC00MmQ3LTkyYWQtNjkyMDVmMmI4YTAwLWJiNzkwODEyYjljNzJhYmM5MjAyMjhkYWI4OWE2MWI5YWU3YWE0NTcuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksXHJcbiAgdXJsKFwiLi4vZm9udHMvMTRmZjYwODEtMzI2ZC00ZGFlLWI3NzgtZDdhZmE2NjE2NmZjLTk3OTY4ODg0ZDRjNWE5M2M0NmFiMTMzNGNlOWU5MTU2YzY5NGVhNGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxyXG4gIHVybChcIi4uL2ZvbnRzLzhmZGExZTQ3LTE5YmUtNDZjNy04ZDgzLThkNGZiMzU1NzJmMC1lMzUyYTgyMmJjMWZhNGJiMTU5NGFkOWZmNDU0NmI4Yzk1ZDI2YWIzLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcclxuICB1cmwoXCIuLi9mb250cy9mNzUxYzhhZS0xMDU3LTQ2ZDktOGQ3NC02MjU5MmUwMDI1NjgtZjYxYzhiMmI2MTc4YWU4OTlkY2U0OWIwZjM4MmY5NTNhNTZjOTgzZi5zdmcjZjc1MWM4YWUtMTA1Ny00NmQ5LThkNzQtNjI1OTJlMDAyNTY4XCIpIGZvcm1hdChcInN2Z1wiKTtcclxuICBmb250LXdlaWdodDogODAwO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5cclxuLyogV2ViZm9udDogQ29sb3BsYXN0TWVkaXVtICovXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiQ29sb3BsYXN0TWVkaXVtXCI7XHJcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL0NvbG9wbGFzdE1lZGl1bS5lb3RcIik7XHJcbiAgICBzcmM6IHVybChcIi4uL2ZvbnRzL0NvbG9wbGFzdE1lZGl1bS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxyXG4gICAgICAgICB1cmwoXCIuLi9mb250cy9Db2xvcGxhc3RNZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxyXG4gICAgICAgICB1cmwoXCIuLi9mb250cy9Db2xvcGxhc3RNZWRpdW0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLFxyXG4gICAgICAgICB1cmwoXCIuLi9mb250cy9Db2xvcGxhc3RNZWRpdW0uc3ZnI0NvbG9wbGFzdE1lZGl1bVwiKSBmb3JtYXQoXCJzdmdcIik7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxufVxyXG5cclxuQGluY2x1ZGUgZXN0YWJsaXNoLWJhc2VsaW5lO1xyXG5cclxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbn1cclxuXHJcbmJvZHksXHJcbnRhYmxlLFxyXG50aGVhZCxcclxudGJvZHksXHJcbnRmb290LFxyXG5pbnB1dCxcclxudGV4dGFyZWEsXHJcbmJ1dHRvbixcclxuc2VsZWN0IHtcclxuICBmb250LWZhbWlseTogJGZvbnQtYm9keTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XHJcbiAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oJGFkanVzdGVkLWxpbmUtaGVpZ2h0IC8gJGJhc2UtbGluZS1oZWlnaHQpO1xyXG4gIC8vbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XHJcbn1cclxuXHJcbmgxLFxyXG5oMixcclxuaDMsXHJcbmg0LFxyXG5oNSxcclxuaDYge1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1oZWFkZXI7XHJcbiAgY29sb3I6IGluaGVyaXQ7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAuaWU4ICYge1xyXG4gICAgbWFyZ2luOiA1cHggMCAxNXB4IDA7XHJcbiAgfVxyXG59XHJcbnAge1xyXG4gIC5pZTggJiB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IDVweCAwIDE1cHggMDtcclxuICB9XHJcbn1cclxuXHJcbmgxIHtcclxuICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXh4bCk7XHJcbiAgbWFyZ2luOiByaHl0aG0oMykgMDtcclxuICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgLm1mcC1jb250ZW50ICYge1xyXG4gICAgZm9udC1zaXplOiA1MHB4O1xyXG4gICAgZm9udC1zaXplOiAzLjMzMzMzcmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDU0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMy42cmVtO1xyXG4gIH1cclxuICArIHAge1xyXG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXh4bCk7XHJcbiAgfVxyXG59XHJcblxyXG5oMiB7XHJcbiAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14eGwpO1xyXG4gIG1hcmdpbjogcmh5dGhtKDMpIDA7XHJcbiAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICsgcCB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuICB9XHJcbiAgLnJlY29tbWVuZGVkICYsXHJcbiAgLmZlYXR1cmVzICYsXHJcbiAgLnJlbGF0ZWQgJixcclxuICAuZ3JpZC1saXN0ICYsXHJcbiAgLmFuaW1hdGlvbnMgJiB7XHJcbiAgICBtYXJnaW46IHJoeXRobSgyKSAwO1xyXG4gICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14bCk7XHJcbiAgICArIHAge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5oMyB7XHJcbiAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14bCk7XHJcbiAgbWFyZ2luOiByaHl0aG0oMikgMDtcclxuICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcblxyXG59XHJcblxyXG5oNCB7XHJcbiAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1sZyk7XHJcbiAgbWFyZ2luOiByaHl0aG0oMykgMCByaHl0aG0oMik7XHJcbiAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG59XHJcblxyXG5oNSB7XHJcbiAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1tZCk7XHJcbiAgbWFyZ2luOiByaHl0aG0oMSkgMDtcclxuICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbnAsXHJcbnVsLFxyXG5vbCB7XHJcbiAgbWFyZ2luLXRvcDogcmh5dGhtKDIpO1xyXG4gIG1hcmdpbi1ib3R0b206IHJoeXRobSgyKTtcclxuICBsaW5lLWhlaWdodDogMjVweDtcclxuXHJcbiAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgJiArIGgyIHtcclxuICAgIG1hcmdpbi10b3A6IHJoeXRobSgzKVxyXG4gIH1cclxuICAmICsgaDMge1xyXG4gICAgbWFyZ2luLXRvcDogcmh5dGhtKDMpXHJcbiAgfVxyXG59XHJcbnNtYWxsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG51bCB7XHJcbiAgbGlzdC1zdHlsZTogZGlzYztcclxufVxyXG5cclxub2wge1xyXG4gIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XHJcbn1cclxuXHJcbmxpIHtcclxuICBtYXJnaW4tbGVmdDogMS42ZW07XHJcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xyXG5cclxufVxyXG5cclxuYTpub3QoLmJ1dHRvbikge1xyXG4gIHRyYW5zaXRpb246IGNvbG9yIC4xNXMgZWFzZS1pbi1vdXQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICAmLFxyXG4gICY6dmlzaXRlZCB7XHJcbiAgICBjb2xvcjogJGNvbG9yLWxpbmtzO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmUsXHJcbiAgLm5vLXRvdWNoICY6aG92ZXIge1xyXG4gICAgY29sb3I6ICRjb2xvci1saW5rcy1hY3RpdmU7XHJcbiAgfVxyXG5cclxuICAuaWNvbiB7XHJcbiAgICBhbGlnbjogYWJzbWlkZGxlXHJcbiAgfVxyXG5cclxufVxyXG5cclxuaDEgLmVkaXQge1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxufVxyXG4uZWRpdCB7XHJcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xyXG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xyXG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xyXG59XHJcblxyXG5zdXAsIHN1YiB7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IC0wLjRlbTtcclxuICBmb250LXNpemU6IC42ZW07XHJcbn1cclxuXHJcbnN1YiB7XHJcbiAgdG9wOiAwLjRlbTtcclxufVxyXG5cclxuc3Ryb25nIHtcclxuICBmb250LXdlaWdodDogJGJvbGQ7XHJcbn1cclxuXHJcbmVtIHtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5jYXRlZ29yeSB7XHJcbiAgZm9udC1zaXplOiAkc2l6ZS1zbTtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oMik7XHJcbn1cclxuXHJcbmhyIHtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTdlN2U3O1xyXG4gIG1hcmdpbjogcmh5dGhtKDQpIDA7XHJcbn1cclxuXHJcbmJsb2NrcXVvdGUge1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1oZWFkZXI7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXhsKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gIG1hcmdpbi10b3A6IDEuNWVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDEuNWVtO1xyXG4gIHF1b3RlczogXCJcXDIwMUNcIlwiXFwyMDFEXCJcIlxcMjAxOFwiXCJcXDIwMTlcIjtcclxuICB6LWluZGV4OiAwO1xyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICBjb250ZW50OiBvcGVuLXF1b3RlO1xyXG4gICAgZm9udC1zaXplOiA0MHJlbTtcclxuICAgIHRvcDogMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAwLjc1O1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBsZWZ0OiAtMS41cmVtO1xyXG4gICAgb3BhY2l0eTowLjE7XHJcbiAgfVxyXG4gIGJsb2NrcXVvdGUgcCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgfVxyXG59IiwiLyogZ2VuZXJhdGVkIHdpdGggZ3J1bnQtc2Fzcy1nbG9iYmluZyAqL1xyXG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9jb2xvcmJveFwiO1xyXG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9jb250ZW50X2VsZW1lbnRzXCI7XHJcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZpbHRlcnNcIjtcclxuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZmxleHNsaWRlclwiO1xyXG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb290ZXJcIjtcclxuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm9ybV9lbGVtZW50c1wiO1xyXG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3JtX29yZGVyX3NhbXBsZVwiO1xyXG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3JtX3NpZ251cFwiO1xyXG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9ncmlkX2xpc3RcIjtcclxuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvaGVhZGVyXCI7XHJcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2hlcm9cIjtcclxuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbWFnbmlmaWNcIjtcclxuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbWFnbmlmaWNfcG9wdXBzXCI7XHJcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL25hdmlnYXRpb25cIjtcclxuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvc3RhdGVfaW5kaWNhdG9yXCI7XHJcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Nvb2tpZS1kaXNjbGFpbWVyXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3BvcHVwXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2ljLXRvb2wtc3VydmV5XCI7XHJcbiIsIi8qXHJcbiAgICBDb2xvcmJveCBDb3JlIFN0eWxlOlxyXG4gICAgVGhlIGZvbGxvd2luZyBDU1MgaXMgY29uc2lzdGVudCBiZXR3ZWVuIGV4YW1wbGUgdGhlbWVzIGFuZCBzaG91bGQgbm90IGJlIGFsdGVyZWQuXHJcbiovXHJcbiNjb2xvcmJveCwgI2Nib3hPdmVybGF5LCAjY2JveFdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB6LWluZGV4OiA5OTk5O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbiNjYm94V3JhcHBlciB7XHJcbiAgbWF4LXdpZHRoOiBub25lO1xyXG59XHJcblxyXG4jY2JveE92ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbiNjYm94TWlkZGxlTGVmdCwgI2Nib3hCb3R0b21MZWZ0IHtcclxuICBjbGVhcjogbGVmdDtcclxufVxyXG5cclxuI2Nib3hDb250ZW50IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbiNjYm94TG9hZGVkQ29udGVudCB7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG59XHJcblxyXG4jY2JveFRpdGxlIHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbiNjYm94TG9hZGluZ092ZXJsYXksICNjYm94TG9hZGluZ0dyYXBoaWMge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbiNjYm94UHJldmlvdXMsICNjYm94TmV4dCwgI2Nib3hDbG9zZSwgI2Nib3hTbGlkZXNob3cge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmNib3hQaG90byB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIGJvcmRlcjogMDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcclxufVxyXG5cclxuLmNib3hJZnJhbWUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBib3JkZXI6IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbiNjb2xvcmJveCwgI2Nib3hDb250ZW50LCAjY2JveExvYWRlZENvbnRlbnQge1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxufVxyXG5cclxuLyogXHJcbiAgICBVc2VyIFN0eWxlOlxyXG4gICAgQ2hhbmdlIHRoZSBmb2xsb3dpbmcgc3R5bGVzIHRvIG1vZGlmeSB0aGUgYXBwZWFyYW5jZSBvZiBDb2xvcmJveC4gIFRoZXkgYXJlXHJcbiAgICBvcmRlcmVkICYgdGFiYmVkIGluIGEgd2F5IHRoYXQgcmVwcmVzZW50cyB0aGUgbmVzdGluZyBvZiB0aGUgZ2VuZXJhdGVkIEhUTUwuXHJcbiovXHJcblxyXG4jY2JveE92ZXJsYXkge1xyXG4gIG1hcmdpbjogMDtcclxuICBiYWNrZ3JvdW5kOiAjMDAwO1xyXG4gIG9wYWNpdHk6IDAuODtcclxufVxyXG5cclxuI2NvbG9yYm94IHtcclxuICBtYXJnaW46IDA7XHJcbiAgb3V0bGluZTogMDtcclxufVxyXG5cclxuI2Nib3hDb250ZW50IHtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4uY2JveElmcmFtZSB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxufVxyXG5cclxuI2Nib3hFcnJvciB7XHJcbiAgcGFkZGluZzogNTBweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG59XHJcblxyXG4jY2JveExvYWRlZENvbnRlbnQge1xyXG4gIHBhZGRpbmc6IDcwcHg7XHJcbn1cclxuXHJcbiNjYm94TG9hZGluZ0dyYXBoaWMsXHJcbiNjYm94TG9hZGluZ092ZXJsYXksXHJcbiNjYm94VGl0bGUsXHJcbiNjYm94Q3VycmVudCxcclxuI2Nib3hQcmV2aW91cyxcclxuI2Nib3hOZXh0LFxyXG4jY2JveFNsaWRlc2hvdyB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuI2Nib3hDbG9zZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cclxuICB0b3A6IDE4cHg7XHJcbiAgcmlnaHQ6IDE4cHg7XHJcbiAgd2lkdGg6IDIycHg7XHJcbiAgaGVpZ2h0OiAyMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gIGZvbnQtc2l6ZTogMjJweDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1pbi13aWR0aDogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG5cclxuLy8gIEBpbmNsdWRlIGljb24tb24tZWxlbWVudCgkY2xvc2UpO1xyXG4gIEBleHRlbmQgLmljb24tY2xvc2U7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgQGV4dGVuZCAlaWNvbi1mb250O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMjJweDtcclxuICAgIGhlaWdodDogMjJweDtcclxuICB9XHJcblxyXG59XHJcbiIsIlxyXG4uZHluQmxvY2sge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmNvbnRlbnQtYmxvY2sge1xyXG4gIGNsZWFyOiBib3RoO1xyXG5cclxuICAuZWxtLWltYWdlIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGltZyB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwIHtcclxuICAgIG1heC13aWR0aDogLjc1ICogJGxnO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuICAgIC5lbG0taW1hZ2Uge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNiwgMSk7XHJcbiAgICB9XHJcbiAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNiwgNyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG51bC5jaGVja21hcmtzIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICBsaSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIHBhZGRpbmctbGVmdDogMmVtO1xyXG5cclxuICAgIC8vQGluY2x1ZGUgaWNvbi1vbi1lbGVtZW50KCRjaGVja21hcmspO1xyXG4gICAgQGV4dGVuZCAuaWNvbi1jaGVja21hcms7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIEBleHRlbmQgJWljb24tZm9udDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0yZW07XHJcbiAgICAgIG1hcmdpbi10b3A6IDAuNGVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxudWwuc29jaWFsIHtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IHJoeXRobSg0KTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblxyXG4gIGxpIHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XHJcblxyXG4gICAgJjpudGgtY2hpbGQobisyKSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xyXG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYm94LXNoYWRvdztcclxuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjNzO1xyXG4gICAgICAubm8tdG91Y2ggJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAxcHggJG1lZGl1bS1ncmF5O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3BhbjpmaXJzdC1jaGlsZCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAtOTk5ZW07XHJcbiAgfVxyXG4gIC5pY29uIHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDFweCAkZGFyay1ncmF5O1xyXG4gIH1cclxuICAuaWNvbi1zb2NpYWwtdHdpdHRlciB7XHJcbiAgICAvL2ZvbnQtc2l6ZToxMnB4O1xyXG4gIH1cclxuICAuaWNvbi1zb2NpYWwteW91dHViZSB7XHJcbiAgICAvL2ZvbnQtc2l6ZToxOHB4O1xyXG4gIH1cclxuICAuaWNvbi1zb2NpYWwtZ29vZ2xlcGx1cyB7XHJcbiAgICAvL2xpbmUtaGVpZ2h0OiAzMnB4O1xyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbi5maWx0ZXJzIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBtYXJnaW4tdG9wOiByaHl0aG0oMyk7XHJcblxyXG4gICYuc2hvdy1jYXRlZ29yaWVzIHtcclxuICAgIGZpZWxkc2V0LnBlcnNvbmFsIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgIGxhYmVsIHtcclxuXHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14eGwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jaGVja2VkIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZmllbGRzZXQuY2F0ZWdvcmllcyB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBwYWRkaW5nOiAkY29udGVudC1tYXJnaW4gMCAoJGNvbnRlbnQtbWFyZ2luLzIpO1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1tZDtcclxuXHJcbiAgICAgID4gKiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwICRjb250ZW50LW1hcmdpbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNhdGVnb3JpZXMge1xyXG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogcmh5dGhtKDgpO1xyXG5cclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IGd1dHRlci1zcGFuKCk7XHJcblxyXG4gICAgICAgICAgJi5jaGVja2VkIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jYXRlZ29yaWVzLXRvZ2dsZSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMHB4O1xyXG4gICAgICAgIHJpZ2h0OiAwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgICBsYWJlbC5jaGVja2VkIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAgICAgICAubGFiZWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1jbG9zZTtcclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgIEBleHRlbmQgJWljb24tZm9udDtcclxuLy8gICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tY29udGVudCgkY2xvc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAjZmlsdGVyLWNhdGVnb3J5LXJlc2V0IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG4gIGZpZWxkc2V0ICsgZmllbGRzZXQge1xyXG4gICAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZztcclxuICB9XHJcblxyXG4gIGZpZWxkc2V0LmNhdGVnb3JpZXMge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgPiAqIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICA+IC5jYXRlZ29yaWVzLXRvZ2dsZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICAgbGFiZWwge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIC5sYWJlbCB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwIDE4cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICB3aWR0aDogNDhweDtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jaGVja2JveC1ncm91cCB7XHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgIHBhZGRpbmc6IDAgMzBweDtcclxuICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcclxuXHJcbiAgICAgICYubXVsdGktbGluZSB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgLnNtYWxsLXR5cGUge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDAuNTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bm90KC5oYXMtaWNvbikge1xyXG4gICAgICAgICYuY2hlY2tlZCB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzLCB0cnVlKSB7XHJcblxyXG4gICAgZmllbGRzZXQuY2F0ZWdvcmllcyB7XHJcbiAgICAgID4gLmNhdGVnb3JpZXMtdG9nZ2xlIHtcclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuICAgIGZpZWxkc2V0ICsgZmllbGRzZXQge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG4gICAgZmllbGRzZXQucGVyc29uYWwge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcblxyXG4gICAgZmllbGRzZXQuY2F0ZWdvcmllcyB7XHJcblxyXG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgIH1cclxuXHJcbiAgICAmLnNob3ctY2F0ZWdvcmllcyB7XHJcblxyXG4gICAgICBmaWVsZHNldC5jYXRlZ29yaWVzIHtcclxuXHJcbiAgICAgICAgLmNhdGVnb3JpZXMge1xyXG4gICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJoeXRobSg4KTtcclxuXHJcbiAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oMyk7XHJcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg0bis0KSB7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxvYXQtc3BhbigzLCAnbGFzdCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbi5mbGV4LWNvbnRhaW5lcixcclxuLmZsZXgtc2xpZGVyIHtcclxuICBhOmhvdmVyLFxyXG4gIGE6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcblxyXG59XHJcblxyXG4uc2xpZGVzIHt9XHJcbi5zbGlkZXMgPiBsaSxcclxuLmZsZXgtY29udHJvbC1uYXYsXHJcbi5mbGV4LWRpcmVjdGlvbi1uYXYge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi5mbGV4LXBhdXNlcGxheSBzcGFuIHtcclxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxufVxyXG5cclxuLmZsZXhzbGlkZXIge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6b29tOiAxO1xyXG5cclxuICAuc2xpZGVzIHtcclxuICAgIHpvb206IDE7XHJcblxyXG4gICAgPiBsaSB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG5cclxuICAgIGh0bWxbeG1sbnNdICYge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAqIGh0bWwgJiB7XHJcbiAgICAgIGhlaWdodDogMSU7XHJcbiAgICB9XHJcblxyXG4gICAgLm5vLWpzICYge1xyXG4gICAgICA+IGxpIHtcclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZsZXgtdmlld3BvcnQge1xyXG4gIG1heC1oZWlnaHQ6IDIwMDBweDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcclxuXHJcbiAgLmxvYWRpbmcgJiB7XHJcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcclxuXHJcbiAgfVxyXG59XHJcblxyXG4uY2Fyb3VzZWwgbGkge1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG59XHJcblxyXG4uZmxleC1kaXJlY3Rpb24tbmF2IHtcclxuXHJcbiAgKmhlaWdodDogMDtcclxuXHJcbiAgYSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgbWFyZ2luOiAtMzBweCAwIDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIC8vb3BhY2l0eTogMDsgXHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBmb250LXNpemU6IDU1cHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1NXB4O1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcclxuICAgIH1cclxuXHJcbiAgICAvL0BpbmNsdWRlIGljb24oJGFycm93LWxlZnQpO1xyXG4gICAgQGV4dGVuZCAuaWNvbi1hcnJvdy1sZWZ0LWJpZztcclxuXHJcbiAgICAmLmZsZXgtbmV4dCB7XHJcbiAgICAgLy8gQGluY2x1ZGUgaWNvbigkYXJyb3ctcmlnaHQpO1xyXG4gICAgICBAZXh0ZW5kIC5pY29uLWFycm93LXJpZ2h0LWJpZztcclxuICAgIH1cclxuICAgICY6YmVmb3JlLFxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIEBleHRlbmQgJWljb24tZm9udDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mbGV4LXByZXYge1xyXG4gICAgbGVmdDogLTMwcHg7XHJcblxyXG4gIH1cclxuICAuZmxleC1uZXh0IHtcclxuICAgIHJpZ2h0OiAtMzBweDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLmZsZXhzbGlkZXI6aG92ZXIgJiB7XHJcblxyXG4gICAgLmZsZXgtcHJldixcclxuICAgIC5mbGV4LW5leHQge1xyXG4gICAgICBvcGFjaXR5OiAwLjc7XHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICAvKlxyXG4gICAgLmZsZXgtcHJldiB7IFxyXG4gICAgICBsZWZ0OiAxMHB4O1xyXG4gICAgfVxyXG4gICAgLmZsZXgtbmV4dCB7IFxyXG4gICAgICByaWdodDogMTBweDtcclxuICAgIH1cclxuICAgICovXHJcblxyXG4gIH1cclxuXHJcbiAgLmZsZXgtZGlzYWJsZWQge1xyXG4gICAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xyXG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIH1cclxufVxyXG5cclxuLmZsZXgtcGF1c2VwbGF5IGEge1xyXG5cclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogNXB4O1xyXG4gIGxlZnQ6IDEwcHg7XHJcbiAgb3BhY2l0eTogMC44O1xyXG4gIHotaW5kZXg6IDEwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGNvbG9yOiAjMDAwO1xyXG4gIC8qXHJcbiAgICAmOmJlZm9yZSB7XHJcblxyXG4gICAgICBmb250LWZhbWlseTogXCJAe2ZvbnQtbmFtZX1cIjtcclxuICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGNvbnRlbnQ6IEBmbGV4LXBhdXNlcGxheS1pY29uLXBhdXNlO1xyXG5cclxuICAgIH1cclxuICAqL1xyXG4gICY6aG92ZXIge1xyXG5cclxuICAgIG9wYWNpdHk6IDE7XHJcblxyXG4gIH1cclxuICAvKlxyXG4gICAgLmZsZXgtcGxheTpiZWZvcmUge1xyXG5cclxuICAgICAgY29udGVudDogQGZsZXgtcGF1c2VwbGF5LWljb24tcGxheTtcclxuXHJcbiAgICB9XHJcbiAgICAqL1xyXG5cclxufVxyXG5cclxuLy9cclxuLy8gQ29udHJvbCBOYXZcclxuLy9cclxuXHJcbi5mbGV4LWNvbnRyb2wtbmF2IHtcclxuXHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogLTQwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBsaSB7XHJcbiAgICBtYXJnaW46IDAgNnB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgem9vbTogMTtcclxuICAgICpkaXNwbGF5OiBpbmxpbmU7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLy9cclxuLy8gQ29udHJvbCBwYWdpbmdcclxuLy9cclxuXHJcbi5mbGV4LWNvbnRyb2wtcGFnaW5nIGxpIHtcclxuXHJcbiAgYSB7XHJcblxyXG4gICAgd2lkdGg6IDlweDtcclxuICAgIGhlaWdodDogOXB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZGFyay1ncmF5O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XHJcbiAgICBvcGFjaXR5OiAuNTtcclxuXHJcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZSwgb3BhY2l0eSAuM3MgZWFzZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgYmFja2dyb3VuZDogJGRhcmstZ3JheTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgJi5mbGV4LWFjdGl2ZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZmxleC1jb250cm9sLXRodW1icyB7XHJcblxyXG4gIG1hcmdpbjogMDtcclxuICBwb3NpdGlvbjogc3RhdGljO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIGxpIHtcclxuXHJcbiAgICB3aWR0aDogMjUlO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgb3BhY2l0eTogLjc7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLmZsZXgtYWN0aXZlIHtcclxuXHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuICB9XHJcbn1cclxuIiwiXHJcbiNwYWdlLWZvb3RlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG5cclxuICBhLnRvcCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IHJoeXRobSgzKTtcclxuICAgIHJpZ2h0OiAkY29udGVudC1tYXJnaW47XHJcblxyXG4gICAgc3BhbjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBzcGFuLmljb24ge1xyXG4gICAgICAvL0BpbmNsdWRlIGljb24oJGFycm93LXVwKTtcclxuICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gICAgICB3aWR0aDogMjBweDtcclxuICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgQGV4dGVuZCAuaWNvbi1hcnJvdy11cDtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBleHRlbmQgJWljb24tZm9udDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDIge1xyXG4gICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1sZyk7XHJcbiAgICBtYXJnaW46IHJoeXRobSgxKSAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgIC8vcGFkZGluZy1ib3R0b206IHJoeXRobSgxKTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYm9yZGVycztcclxuICB9XHJcbiAgcCB7XHJcbiAgICBtYXJnaW46IHJoeXRobSgxKSAwO1xyXG4gICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1zbSk7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygzKTtcclxuICB9XHJcblxyXG4gIC5tYWluLWZvb3RlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZGFyay1ncmF5O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcblxyXG4gICAgaDIsXHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xyXG4gICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXNtKTtcclxuICAgICAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oNCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2Vjb25kYXJ5LWZvb3RlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cclxuICAgIHVsIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgfVxyXG4gICAgbGkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWFyZ2luOiByaHl0aG0oMSkgMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14cyk7XHJcbiAgICAgIEBpbmNsdWRlIGFkanVzdC1sZWFkaW5nLXRvKDQpO1xyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXRleHQtYm9keTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItbGlua3MtYWN0aXZlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWN0aW9uLmNhbGwtdXMsXHJcbiAgc2VjdGlvbi5vcmRlci1zYW1wbGUsXHJcbiAgc2VjdGlvbi5zb2NpYWwge1xyXG4gICAgbWFyZ2luOiByaHl0aG0oNCkgMDtcclxuICB9XHJcblxyXG4gIHNlY3Rpb24uY2FsbC11cyxcclxuICBzZWN0aW9uLm9yZGVyLXNhbXBsZSB7XHJcbiAgICAuaWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XHJcbiAgICAgIG1hcmdpbi10b3A6IHJoeXRobSgyKTtcclxuICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlY3Rpb24uc29jaWFsIHtcclxuXHJcbiAgICB1bC5zb2NpYWwge1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KTtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAxcHggI2ZmZjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbi5mb290ZXItZGlzY2xhaW1lciB7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbjogcmh5dGhtKDIpIDA7XHJcbiAgcGFkZGluZy10b3A6IHJoeXRobSgyKTtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcnM7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcclxuICAgIGNsZWFyOiBub25lO1xyXG4gICAgbWFyZ2luOiByaHl0aG0oMSkgMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KCR4cywgdHJ1ZSkge1xyXG4gIGZvb3RlciNwYWdlLWZvb3RlciB7XHJcblxyXG4gICAgLnNlY29uZGFyeS1mb290ZXIge1xyXG4gICAgICB1bCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICAgIGxpIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKG4rMikge1xyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnLSc7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBib3VuY2Uge1xyXG4gIDAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMClcclxuICB9XHJcbiAgMzclIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLSN7MS4wMCAqIDY1fXB4LCAwKVxyXG4gIH1cclxuICA1NSUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtICN7Ljc1ICogNjV9cHgsIDApXHJcbiAgfVxyXG4gIDczJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0jezEuMDAgKiA2NX1weCwgMClcclxuICB9XHJcbiAgODIlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLSN7LjkzICogNjV9cHgsIDApXHJcbiAgfVxyXG4gIDkxJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0jezEuMDAgKiA2NX1weCwgMClcclxuICB9XHJcbiAgOTYlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLSN7Ljk4ICogNjV9cHgsIDApXHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtI3sxLjAwICogNjV9cHgsIDApXHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KCRzbSwgdHJ1ZSkge1xyXG4gIGZvb3RlciNwYWdlLWZvb3RlciB7XHJcblxyXG4gICAgLm1haW4tZm9vdGVyIHtcclxuICAgICAgLmNvbnRlbnQtd3JhcHBlciB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA4NTBweCAvICRiYXNlLWZvbnQtc2l6ZSAqIDFlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGgyIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBmb250LXdlaWdodDogJG5vcm1hbDtcclxuICAgIH1cclxuXHJcbiAgICBzZWN0aW9uLmNhbGwtdXMsXHJcbiAgICBzZWN0aW9uLm9yZGVyLXNhbXBsZSB7XHJcblxyXG4gICAgICA+ICoge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbiB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogcmh5dGhtKDEpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgICAvL3dpZHRoOiA0MHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAmLmljb24tc3BlZWNoQnViYmxlcyB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDUwcHg7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMTVweDtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlY3Rpb24uY2FsbC11cyB7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3BhbigzLCAxKTtcclxuICAgIH1cclxuICAgIHNlY3Rpb24ub3JkZXItc2FtcGxlIHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDQsIDkpO1xyXG4gICAgfVxyXG4gICAgc2VjdGlvbi5zb2NpYWwge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNCwgNSk7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJoeXRobSg2KTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNSk7XHJcblxyXG4gICAgICBoMiB7XHJcbiAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1zbSk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJoeXRobSgxKTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB1bCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VjdGlvbi5jYWxsLXVzIHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDUsIDIpO1xyXG4gICAgfVxyXG4gICAgc2VjdGlvbi5vcmRlci1zYW1wbGUge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNSwgOSk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlY29uZGFyeS1mb290ZXIge1xyXG4gICAgICB1bCB7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubm8tbGVnYWN5Lm5vLXRvdWNoIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiByaHl0aG0oMTQpO1xyXG5cclxuICAgIGZvb3RlciNwYWdlLWZvb3RlciB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICB6LWluZGV4OiAyMDtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcztcclxuXHJcbiAgICAgIHNlY3Rpb24uY2FsbC11cyxcclxuICAgICAgc2VjdGlvbi5vcmRlci1zYW1wbGUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAlLCAwLCAwKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzO1xyXG5cclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXIgLjJzO1xyXG4gICAgICAgIH1cclxuICAgICAgICA+ICo6bnRoLWNoaWxkKG4rMykge1xyXG4gICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNyUsIDIwJSwgMCk7XHJcblxyXG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjNzO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBzZWN0aW9uLm9yZGVyLXNhbXBsZSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAlLCAwLCAwKTtcclxuXHJcbiAgICAgICAgPiAqOm50aC1jaGlsZChuKzMpIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTclLCAyMCUsIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgc2VjdGlvbi5zb2NpYWwge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMCUsIDApO1xyXG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybTtcclxuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XHJcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2Nyb2xsLW5lYXItYm90dG9tIHtcclxuICAgICAgZm9vdGVyI3BhZ2UtZm9vdGVyIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC02NXB4LCAwKSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgIC5vdmVyIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICAgc2VjdGlvbi5jYWxsLXVzLFxyXG4gICAgICAgICAgc2VjdGlvbi5vcmRlci1zYW1wbGUge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG5cclxuICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+ICo6bnRoLWNoaWxkKG4rMykge1xyXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBzZWN0aW9uLm9yZGVyLXNhbXBsZSB7XHJcbiAgICAgICAgICAgID4gKjpudGgtY2hpbGQobiszKSB7XHJcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjFzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc2VjdGlvbi5zb2NpYWwge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgICAgICAgICAvL3RyYW5zaXRpb24tZGVsYXk6IC4xcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kLCB0cnVlKSB7XHJcbiAgZm9vdGVyI3BhZ2UtZm9vdGVyIHtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5tYWluLWZvb3RlciB7XHJcbiAgICAgIC5jb250ZW50LXdyYXBwZXIge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iLCJcclxuaW5wdXQsXHJcbnRleHRhcmVhIHtcclxuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ib2R5O1xyXG59XHJcblxyXG4lZm9ybS1yb3ctY2xlYXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuJWlucHV0LXRleHQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaW5wdXQsXHJcbiAgICB0ZXh0YXJlYSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgcGFkZGluZzogJGZpZWxkLXBhZGRpbmctdiAkZmllbGQtcGFkZGluZy1oO1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgLmllOCAmIHtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcnM7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5mb3JtLWhlYWRlciAmIHtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVycztcclxuICAgIH1cclxufVxyXG4udGV4dGFyZWEge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAkZmllbGQtcGFkZGluZy12ICRmaWVsZC1wYWRkaW5nLWg7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcbi5pbnB1dC1idXR0b24ge1xyXG4gICAgQGV4dGVuZCAlYnV0dG9uO1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ib2R5O1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmctdiAkYnV0dG9uLXBhZGRpbmctaDtcclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4uaW5wdXQtYnV0dG9ucyBsYWJlbCB7XHJcbiAgICBAZXh0ZW5kIC5pbnB1dC1idXR0b247XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XHJcbiAgICAubm8tdG91Y2ggJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5pY29uIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmLmhhcy1pY29uLmlucHV0LWNoZWNrYm94IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7XHJcblxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoLmhhcy1pY29uKSB7XHJcbiAgICAgICAgJi5jaGVja2VkIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmljb24tYnV0dG9uIHtcclxuICAgIEBleHRlbmQgLmlucHV0LWJ1dHRvbjtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAubGFiZWwge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pY29uLWJ1dHRvbnMgbGFiZWwge1xyXG4gICAgQGV4dGVuZCAuaWNvbi1idXR0b247XHJcbiAgICAuaWU4ICYge1xyXG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgIG1hcmdpbjogMCAyMHB4IDAgMDtcclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxubGFiZWwge1xyXG4gICAgQGV4dGVuZCAlZm9ybS1yb3ctY2xlYXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAvL21hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcbiAgICB9XHJcbiAgICAmLmlucHV0LXRleHQsXHJcbiAgICAmLmlucHV0LXNlbGVjdCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcclxuICAgICAgICAvLyY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgLy8gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIC8vfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XHJcbiAgICAgICAgJi5zbSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIGNsZWFyOiBub25lO1xyXG4gICAgICAgICAgICB3aWR0aDogMzIlO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDElO1xyXG5cclxuICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzbiszKSB7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICBjbGVhcjogcmlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYubWQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0OCU7XHJcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gI3skZm9ybS1zcGFjaW5nfSkgLyAyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5tZDpub3QoLmxhc3QpOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmxnIHtcclxuICAgICAgICAgICAgd2lkdGg6IDYwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmxhYmVsIHtcclxuICAgICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRiYXNlLWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcblxyXG4gICAgICAgICYuZGlzY3JlZXQge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXNtKTtcclxuXHJcbiAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKCRkYXJrLWdyYXksIDI1KTtcclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGRhcmstZ3JheSwgMjUpO1xyXG4gICAgICAgICAgICAgICAgLm5vLXRvdWNoICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5sYWJlbC12YWx1ZSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAub3B0aW9uYWwge1xyXG4gICAgICAgIG9wYWNpdHk6IC43O1xyXG4gICAgfVxyXG5cclxuICAgIC5pY29uICsgLmxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNGVtO1xyXG4gICAgICAgIC5pZTggJiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi1jaGVja21hcmsge1xyXG4gICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuaWU4ICYge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi1nZW5kZXItbWFsZTpiZWZvcmUsXHJcbiAgICAuaWNvbi1nZW5kZXItZmVtYWxlOmJlZm9yZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgfVxyXG5cclxuICAgICYuY2hlY2tlZCxcclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIC5pY29uLWNoZWNrbWFyayB7XHJcblxyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaWNvbi1nZW5kZXItbWFsZSxcclxuICAgICAgICAuaWNvbi1nZW5kZXItZmVtYWxlIHtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuaW5wdXQsXHJcbnRleHRhcmVhIHtcclxuICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJGJhc2UtZm9udC1zaXplKTtcclxuICAgIEBpbmNsdWRlIGFkanVzdC1sZWFkaW5nLXRvKDMpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAmOmRpc2FibGVkIHtcclxuICAgICAgICBjb2xvcjogI2NjYztcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNjtcclxuICAgIH1cclxufVxyXG5cclxuYnV0dG9uIHtcclxuICAgIEBleHRlbmQgLmJ1dHRvbjtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1oZWFkZXI7XHJcbiAgICBmb250LXdlaWdodDogJGxpZ2h0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMsIHRydWUpIHtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICBtaW4td2lkdGg6IDIxMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uaW5wdXQtcHJlZml4IHtcclxuICAgIC5wcmVmaXgge1xyXG4gICAgICAgIC5sdC1pZTkgJiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgICBwYWRkaW5nOiAxMXB4O1xyXG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcclxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKCRjb2xvci1ib3JkZXJzLCAwLjIpO1xyXG4gICAgfVxyXG4gICAgW2NsYXNzKj1pbnB1dF0ge1xyXG4gICAgICAgIC5sdC1pZTkgJiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA4MCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHdpZHRoOiA4NSU7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDUwcHgpO1xyXG4gICAgICAgIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDUwcHgpO1xyXG4gICAgICAgIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDUwcHgpO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMsIHRydWUpIHtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmlucHV0LWNoZWNrYm94LFxyXG4uaW5wdXQtcmFkaW8ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWluLWhlaWdodDogMjBweDtcclxuICAgIHBhZGRpbmc6ICRmaWVsZC1wYWRkaW5nLWggMDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygzKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IC05OTk5ZW07XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAuaWU4ICYge1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5pbnB1dC1jaGVja2JveCB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgdG9wOiAycHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNXB4O1xyXG4gICAgICAgIGxlZnQ6IDBweDtcclxuICAgICAgICB6LWluZGV4OiA1O1xyXG4gICAgfVxyXG59XHJcblxyXG4uaW5wdXQtdGV4dCB7XHJcbiAgICBAZXh0ZW5kICVpbnB1dC10ZXh0O1xyXG5cclxuICAgIC5sYWJlbCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMTFweDtcclxuICAgICAgICBsZWZ0OiAxMXB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IHRvcCAuMXMsIGZvbnQtc2l6ZSAuMXMsIGNvbG9yIC4xcztcclxuXHJcbiAgICB9XHJcblxyXG4gICAgJi5mb2N1cyxcclxuICAgICYuaGFzLXZhbHVlIHtcclxuICAgICAgICAubGFiZWwge1xyXG4gICAgICAgICAgICB0b3A6IC0ycHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUteHMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5pbnB1dC10ZXh0YXJlYSB7XHJcbiAgICBAZXh0ZW5kIC5pbnB1dC10ZXh0O1xyXG5cclxuICAgIHRleHRhcmVhIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBoZWlnaHQ6IDEyMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1wYWdlIHtcclxuICAgICY6bnRoLWNoaWxkKG4rMikge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHJoeXRobSg4KTtcclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0tcm93IHtcclxuICAgIEBleHRlbmQgJWZvcm0tcm93LWNsZWFyO1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcblxyXG59XHJcbmZvcm0gLnJvdyB7XHJcbiAgICBoMiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgIH1cclxufVxyXG5cclxuLmZvcm0tY29sIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XHJcblxyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB3aWR0aDogNDUlO1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gNzBweCkgLyAyKTtcclxuXHJcbiAgICAgICAgJjpudGgtb2YtdHlwZSgybisyKSB7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oaWRlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5mb3JtLWNvbXBhY3Qge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLW1kO1xyXG5cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ib3JkZXJzLWxpZ2h0O1xyXG5cclxuICAgICAgICAmLmlucHV0LXRleHQsXHJcbiAgICAgICAgJi5pbnB1dC10ZXh0YXJlYSB7XHJcbiAgICAgICAgICAgICY6bm90KC5mb2N1cykge1xyXG4gICAgICAgICAgICAgICAgLmxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmxhYmVsIHtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDEwcHg7XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlucHV0IHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLXJvdzpsYXN0LWNoaWxkIHtcclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uaWU4IHtcclxuICAgIHNlbGVjdMKge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogNDBweDtcclxuXHQgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcnM7XHJcbiAgICB9XHJcbn1cclxuLmljb24taW5wdXQtZ3JvdXAsXHJcbi5jaGVja2JveC1ncm91cC50eXBlLXN1cnZleS00IHtcclxuICAgIG1hcmdpbi10b3A6IHJoeXRobSg2KTtcclxufVxyXG4ucmFkaW8tZ3JvdXAsXHJcbi5jaGVja2JveC1ncm91cCxcclxuLnNlbGVjdC1ncm91cCB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7IFxyXG5cclxuICAgICYuaW5wdXQtYnV0dG9ucyBsYWJlbCB7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmNiY2JjO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubm8tdG91Y2ggJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGUgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmW2NsYXNzKj1cInR5cGUtc3VydmV5LVwiXSB7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkbGlnaHQtZ3JheTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyIC4xNXMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sZztcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bm90KC5oYXMtaWNvbikuY2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi50eXBlLXN1cnZleS0xMCB7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLnR5cGUtc3VydmV5LTQge1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyNSU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpub3QoLmhhcy1pY29uKS5jaGVja2VkIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJGNvbG9yLXByaW1hcnksIDAgMCAxNXB4IHJnYmEoJGNvbG9yLXByaW1hcnksIDAuNSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYudHlwZS1zdXJ2ZXktNCB7XHJcbiAgICAgICAgLmxhYmVsLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDUwcHg7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMzVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubGFiZWwge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDcwcHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDYwcHgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sYWJlbC1pY29uIHtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xyXG4gICAgICAgICAgICAubGFiZWwtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMSU7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMzVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5sYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xyXG4gICAgICAgICAgICAubGFiZWwtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcclxuXHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDUlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRmb3JtLXNwYWNpbmc7XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pY29uLWlucHV0LWdyb3VwIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNzBweDtcclxuICAgIH1cclxufVxyXG5cclxuLmlucHV0LWdyb3VwLmNvbXBhY3QtZ3JvdXAge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcblxyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyJTtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IHJoeXRobSgxKTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQgMCAwICRib3JkZXItcmFkaXVzLW1kO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwICRib3JkZXItcmFkaXVzLW1kICRib3JkZXItcmFkaXVzLW1kIDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpudGgtb2YtdHlwZShuKzEpIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5nZW5kZXItbW9iaWxpdHkge1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcbiAgICAgICAgLnJhZGlvLWdyb3VwIHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIGNsZWFyOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmFkaW8tZ3JvdXAgKyAuY2hlY2tib3gtZ3JvdXAge1xyXG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRmb3JtLXNwYWNpbmc7XHJcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMiAqICg0MHB4ICsgI3skZm9ybS1zcGFjaW5nfSkpKTtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYnV0dG9uLWdyb3VwIHtcclxuICAgIC8vQGV4dGVuZCAlZm9ybS1yb3ctY2xlYXI7XHJcbiAgICAvL0BpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgLy9vdmVyZmxvdzogaGlkZGVuO1xyXG5cdC5sZWZ0IHtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcblx0XHRcdGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdC5yaWdodCB7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xyXG5cdFx0XHRmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcclxuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0XHRcdGJ1dHRvbiB7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG4gICAgYnV0dG9uIHtcclxuICAgICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXhsKTtcclxuICAgICAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10byg3KTtcclxuXHQgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcclxuXHRcdCAgICAmLmxlZnQge1xyXG5cdFx0XHQgICAgZmxvYXQ6IGxlZnQ7XHJcblx0XHQgICAgfVxyXG5cdFx0ICAgICYucmlnaHQge1xyXG5cdFx0XHQgICAgZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0ICAgIH1cclxuXHQgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC5mb3JtLXRlcm1zIHtcclxuICAgICAgICBAZXh0ZW5kICVjbGVhcmZpeDtcclxuICAgICAgICAvL2Zsb2F0OiByaWdodDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG5cdCAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xyXG5cdFx0ICAgIGZsb2F0OiByaWdodDtcclxuXHQgICAgfVxyXG4gICAgfVxyXG59XHJcbi5mb3JtLXRlcm1zIHtcclxuICAgICYuYWJvdmUtYnV0dG9uIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxufVxyXG4uZm9ybS1zdGVwIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZm9ybS1jb25maXJtYXRpb24ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnN1cnZleS1ncm91cCB7XHJcbiAgICBoNCB7XHJcbiAgICAgICAgKyBwIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uaWNvbi1pbnB1dC1ncm91cCB7XHJcblxyXG59XHJcblxyXG4vLyBGT1JNIFJFQ0VJUFQgUEFHRVxyXG4uZm9ybS1yZWNpcHQge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLy8gR1JBUEggSU5ESUNBVE9SXHJcbi5ncmFwaC1pbmRpY2F0b3Ige1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvc3ByaXRlcy9ncmFwaC5wbmcnKSBuby1yZXBlYXQ7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHNwYW4ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtaGVhZGVyO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNjBweDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgdG9wOiA4NXB4O1xyXG4gICAgfVxyXG4gICAgJi0tMSB7XHJcblxyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0wcHggLTBweDtcclxuICAgICAgICBzcGFuOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogJzEnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYtLTIge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDBweCAtMHB4O1xyXG4gICAgICAgIHNwYW46YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnMic7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi0tMyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwMHB4IC0wcHg7XHJcbiAgICAgICAgc3BhbjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICczJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLS00IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMHB4IC0yMDBweDtcclxuICAgICAgICBzcGFuOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogJzQnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYtLTUge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDBweCAtMjAwcHg7XHJcbiAgICAgICAgc3BhbjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICc1JztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLS02IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDAwcHggLTIwMHB4O1xyXG4gICAgICAgIHNwYW46YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnNic7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi0tNyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTBweCAtNDAwcHg7XHJcbiAgICAgICAgc3BhbjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICc3JztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLS04IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwcHggLTQwMHB4O1xyXG4gICAgICAgIHNwYW46YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnOCc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi0tOSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwMHB4IC00MDBweDtcclxuICAgICAgICBzcGFuOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogJzknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYtLTEwIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMHB4IC02MDBweDtcclxuICAgICAgICBzcGFuOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogJzEwJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zdXJ2ZXktbGVnZW5kcyB7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtc20pO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmh5dGhtKDEpO1xyXG4gICAgLmxlZnQge1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gICAgLnJpZ2h0IHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5kaXNjbGFpbWVyIHtcclxuICAgIEBleHRlbmQgJWZvcm0tcm93LWNsZWFyO1xyXG4gICAgbWFyZ2luLXRvcDogcmh5dGhtKDIpO1xyXG4gICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1zbSk7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygyKTtcclxuXHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxufVxyXG4uaW5wdXQtaGVscCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB0b3A6IC0xMHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG4uaW5wdXQtc2VsZWN0IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAvLyAgbWluLXdpZHRoOiAyNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuLnNlbGVjdC1ncm91cCAuaW5wdXQtc2VsZWN0IHtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xyXG4gICAgICAgIG1pbi13aWR0aDogMDtcclxuICAgIH1cclxufVxyXG5cclxuLmRrLXNlbGVjdCwgLmRrLXNlbGVjdC1tdWx0aSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkYmFzZS1mb250LXNpemUpO1xyXG4gICAgbGluZS1oZWlnaHQ6IDQzcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmRrLXNlbGVjdGVkIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLW1kO1xyXG4gICAgcGFkZGluZzogMCAxLjVlbSAwICRmaWVsZC1wYWRkaW5nLWg7XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuXHRtYXgtaGVpZ2h0OiAzOXB4O1xyXG4gICAgLy9AaW5jbHVkZSBpY29uLW9uLWVsZW1lbnQoJGFycm93LWRvd24pO1xyXG5cclxuICAgIEBleHRlbmQgLmljb24tYXJyb3ctZG93bjtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICBAZXh0ZW5kICVpY29uLWZvbnQ7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIG1hcmdpbjogLTAuN2VtICRmaWVsZC1wYWRkaW5nLWggMCAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICAgIC5pbnB1dC1lcnJvciAmIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZXJyb3ItYmFja2dyb3VuZDtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgIH1cclxufVxyXG5cclxuLmRrLXNlbGVjdGVkLWRpc2FibGVkIHtcclxuICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcblx0bWF4LWhlaWdodDogMzlweDtcclxufVxyXG5cclxuLmRrLXNlbGVjdCAuZGstc2VsZWN0LW9wdGlvbnMge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGxlZnQ6IDA7XHJcbn1cclxuXHJcbi5kay1zZWxlY3Qtb3Blbi11cCAuZGstc2VsZWN0LW9wdGlvbnMge1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQgJGJvcmRlci1yYWRpdXMtbWQgMCAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci1wcmltYXJ5O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcclxuICAgIGJvdHRvbTogMTAwJTtcclxufVxyXG5cclxuLmRrLXNlbGVjdC1vcGVuLWRvd24gLmRrLXNlbGVjdC1vcHRpb25zIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkYm9yZGVyLXJhZGl1cy1tZCAkYm9yZGVyLXJhZGl1cy1tZDtcclxuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAkY29sb3ItcHJpbWFyeTtcclxuICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICB0b3A6IDEwMCU7XHJcbn1cclxuXHJcbi5kay1zZWxlY3QtbXVsdGkgLmRrLXNlbGVjdC1vcHRpb25zIHtcclxuICAgIG1heC1oZWlnaHQ6IDEwZW07XHJcbn1cclxuXHJcbi5kay1zZWxlY3Qtb3B0aW9ucyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHotaW5kZXg6IDEwMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgbWF4LWhlaWdodDogOC41ZW07XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycztcclxuICAgIC5pYy10b29sLXN1cnZleSAmIHtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAxMC41ZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5kay1vcHRpb24tc2VsZWN0ZWQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XHJcbn1cclxuXHJcbi5kay1zZWxlY3Qtb3B0aW9ucy1oaWdobGlnaHQgLmRrLW9wdGlvbi1zZWxlY3RlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG59XHJcblxyXG4uZGstb3B0aW9uIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZzogMC41ZW0gJGZpZWxkLXBhZGRpbmctaDtcclxuICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtc20pO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnM7XHJcbn1cclxuXHJcbi5kay1zZWxlY3Qtb3B0aW9ucyAuZGstb3B0aW9uLWhpZ2hsaWdodCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcclxufVxyXG5cclxuLmRrLXNlbGVjdC1vcHRpb25zIC5kay1vcHRpb24tZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4uZGstb3B0Z3JvdXAge1xyXG4gICAgcGFkZGluZzogMC4yNWVtIDA7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjI1ZW07XHJcblxyXG4gICAgJiArIC5kay1vcHRpb24ge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDAuMjVlbTtcclxuICAgIH1cclxuICAgICYgKyAuZGstb3B0Z3JvdXAge1xyXG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgIH1cclxuICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxufVxyXG5cclxuLmRrLW9wdGdyb3VwLWxhYmVsIHtcclxuICAgIHBhZGRpbmc6IDAgMC41ZW0gMC4yNWVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmRrLW9wdGdyb3VwLW9wdGlvbnMge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmRrLXNlbGVjdC1vcGVuLXVwIC5kay1zZWxlY3RlZCB7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XHJcbn1cclxuXHJcbi5kay1zZWxlY3Qtb3Blbi1kb3duIC5kay1zZWxlY3RlZCB7XHJcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XHJcbn1cclxuXHJcbi5kay1zZWxlY3Qtb3Blbi11cCAuZGstc2VsZWN0ZWQsXHJcbi5kay1zZWxlY3Qtb3Blbi1kb3duIC5kay1zZWxlY3RlZCB7XHJcbiAgICAvL0BpbmNsdWRlIGljb24tb24tZWxlbWVudCgkYXJyb3ctdXApO1xyXG5cclxuICAgIEBleHRlbmQgLmljb24tYXJyb3ctdXA7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBleHRlbmQgJWljb24tZm9udDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMC4zZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5kay1zZWxlY3Qtb3Blbi11cCAuZGstc2VsZWN0LW9wdGlvbnMsXHJcbi5kay1zZWxlY3Qtb3Blbi1kb3duIC5kay1zZWxlY3Qtb3B0aW9ucyxcclxuLmRrLXNlbGVjdC1tdWx0aTpmb2N1cyAuZGstc2VsZWN0LW9wdGlvbnMge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG4uZGstc2VsZWN0LW11bHRpOmhvdmVyLFxyXG4uZGstc2VsZWN0LW11bHRpOmZvY3VzLFxyXG4uZGstc2VsZWN0ZWQ6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmRrLXNlbGVjdC1kaXNhYmxlZCB7XHJcbiAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuXHJcbnNlbGVjdFtkYXRhLWRrY2FjaGVpZF0ge1xyXG4gICAgLy9kaXNwbGF5OiBub25lO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuXHJcbi5jbGljay10by1lZGl0IHtcclxuXHJcbiAgICBsYWJlbDpub3QoLm92ZXIpIHtcclxuICAgICAgICAmLFxyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgICYuaW5wdXQtY2hlY2tib3g6YmVmb3JlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmlucHV0LXRleHQuaGFzLXZhbHVlIC5sYWJlbCxcclxuICAgICAgICAmLmlucHV0LXRleHRhcmVhLmhhcy12YWx1ZSAubGFiZWwge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jaGVja2VkIC5pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGFiZWwuaW5wdXQtdGV4dC5vdmVyLFxyXG4gICAgbGFiZWwuaW5wdXQtdGV4dGFyZWEub3ZlciB7XHJcbiAgICAgICAgLy9AaW5jbHVkZSBpY29uLW9uLWVsZW1lbnQoJHBlbmNpbCk7XHJcblxyXG4gICAgICAgIEBleHRlbmQgLmljb24tYXJyb3ctdXA7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVpY29uLWZvbnQ7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgcmlnaHQ6IDAuNmVtO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuNWVtO1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBFcnJvcnNcclxuLmlucHV0LXRleHQsXHJcbi5pbnB1dC10ZXh0YXJlYSB7XHJcbiAgICAmLmlucHV0LWVycm9yIHtcclxuICAgICAgICAuZXJyb3Ige1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXJyb3ItYmFja2dyb3VuZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmxhYmVsIHtcclxuICAgICAgICAgICAgY29sb3I6ICRlcnJvci1mb3JlZ3JvdW5kICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uaW5wdXQtY2hlY2tib3gge1xyXG4gICAgLmxhYmVsIHtcclxuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgIH1cclxuICAgICYuaW5wdXQtZXJyb3Ige1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVycm9yLWJhY2tncm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pY29uLWNoZWNrbWFyayB7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGVycm9yLWZvcmVncm91bmQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufVxyXG5cclxuLmlucHV0LWJ1dHRvbnMsXHJcbi5pY29uLWJ1dHRvbnMge1xyXG4gICAgLmlucHV0LWNoZWNrYm94LFxyXG4gICAgLmlucHV0LXJhZGlvIHtcclxuICAgICAgICAmLmlucHV0LWVycm9yIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGVycm9yLWJhY2tncm91bmQ7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkZXJyb3ItZm9yZWdyb3VuZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idXR0b24tLWNhbmNlbCB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0Ly9mbG9hdDogbGVmdDtcclxuXHQvL2NvbG9yOiAkZGFyay1ncmF5ICFpbXBvcnRhbnQ7XHJcblx0YmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xyXG5cdC8vdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcblx0W2NsYXNzKj1pY29uXSB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHRtYXJnaW4tdG9wOiAzcHg7XHJcblx0fVxyXG5cdCY6aG92ZXIge1xyXG5cdFx0Lm5vLXRvdWNoICYge1xyXG5cdFx0XHRjb2xvcjogJGNvbG9yLWxpbmtzICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vLyBJQ09OSVpFIFRISVNcclxuLmljb25pemUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcHJpbWFyeTtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1oZWFkZXI7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuNXMgbGluZWFyO1xyXG4gICAgJi0tYWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYm9yZGVycztcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8vIEZPUk0gQUREc1xyXG4uYWRkLWxpbmsge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAuaWNvbml6ZSB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xyXG4gICAgfVxyXG4gICAgKyAqIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICAgIH1cclxufVxyXG4vLyBGT1JNIEhFTFBcclxuLmhlbHAtc2libGluZyB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xyXG59XHJcbi5oZWxwIHtcclxuXHQmX19pY29uIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMzhweDtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IFxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC00NXB4O1xyXG4gICAgICAgIH1cclxuXHR9XHJcblx0Jl9faW5uZXIge1xyXG5cclxuXHR9XHJcbn1cclxuXHJcbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGwge1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDUwcHggI2ZmZiBpbnNldDtcclxuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkY29sb3ItdGV4dC1ib2R5O1xyXG4gICAgJi5lcnJvciB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDUwcHggI2ZmZiBpbnNldDtcclxuICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGNvbG9yLXRleHQtYm9keTtcclxuICAgIH1cclxufVxyXG5pbnB1dDotd2Via2l0LWF1dG9maWxsLCB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLCBzZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbCB7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgNTBweCAjZmZmIGluc2V0O1xyXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XHJcbn0iLCJcclxuI2Zvcm0tb3JkZXItc2FtcGxlLW92ZXJsYXkge1xyXG4gIEBleHRlbmQgLm1mcC1mb3JtLXdpZGUtcG9wdXA7XHJcblxyXG4gICNjb2xvcmJveCAmIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tb3JkZXItc2FtcGxlIHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIC5idXR0b24tZ3JvdXAge1xyXG4gICAgYnV0dG9uIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbiNzaWdudXAtZm9ybS10cmlnZ2VyIHtcclxuXHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XHJcbiAgbWFyZ2luLWJvdHRvbTogLXJoeXRobSg2KTtcclxuXHJcbiAgaDIsXHJcbiAgcCxcclxuICBhIHtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gIH1cclxuXHJcbiAgYS50cmlnZ2VyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjFzO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgIC5pY29uIHtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIC4xcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAzMCU7XHJcbiAgICB6LWluZGV4OiAyMDtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgIGEudHJpZ2dlciB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xNXMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtc20pO1xyXG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgICBmb250LXdlaWdodDogJGJvbGQ7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgei1pbmRleDogMjA7XHJcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjYpIHRyYW5zbGF0ZSgtNnB4LCAwKTtcclxuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGxlZnQ7XHJcbiAgICAgIG9wYWNpdHk6IC42OyBcclxuICAgICAgLm5vLXRvdWNoICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkY29sb3ItcHJpbWFyeSwgNSUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaWNvbiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzZweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3BhbjpudGgtb2YtdHlwZSgyKSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uby10b3VjaCAmOmhvdmVyIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG5cclxuICAgICAgICBzcGFuOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsZy1icCkge1xyXG4gICAgYS50cmlnZ2VyIHtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtc20pO1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzZweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3BhbjpudGgtb2YtdHlwZSgyKSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG4uYWRkcmVzcy1maWVsZHMge1xyXG4gICAgbWF4LWhlaWdodDogMjAwMHB4OyAgXHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZS1pbi1vdXQgMC4zcztcclxuXHJcbiAgICAmLmhpZGRlbiB7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMDtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcbn1cclxuXHJcbi5sb29rdXAtZmllbGRzIHtcclxuICAgICYuaGlkZGVuLFxyXG4gICAgLmhpZGRlbiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuI2FkZHJlc3NMb29rdXBCdXR0b24ge1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0O1xyXG4gICAgJi5sb2FkaW5nIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvYW5pbWF0ZWR3YWl0LmdpZik7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IDUwJTtcclxuICAgIH1cclxufVxyXG5cclxuLmRyb3Bkb3duLWhvbGRlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5cclxuLmF1dG9jb21wbGV0ZS1kcm9wZG93biB7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZS1pbi1vdXQgMC4zcztcclxuICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcclxuICAgIHotaW5kZXg6IDk5O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMWVtO1xyXG4gICAgcmlnaHQ6IDFlbTtcclxuICAgIHRvcDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IC0xNXB4O1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xyXG4gICAgICAgICYge1xyXG4gICAgICAgICAgICB3aWR0aDogMzVlbTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNzMlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLm5vLXJlc3VsdHMge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgICNhZGRyZXNzLXJlc3VsdHMge1xyXG4gICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAjMDBiMmNlO1xyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMTBweCAwO1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMTBlbTtcclxuICAgICAgICBvdmVyZmxvdzogYXV0bztcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBsaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmLnNlbGVjdGVkIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ0bnMge1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U3ZTdlNztcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xyXG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jYW5jZWwtYnV0dG9uIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzcwNzA3MDtcclxuICAgICAgICAgICAgZmxvYXQ6bGVmdDtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2JjYmNiYztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmNvbnRpbnVlLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5oaWRkZW4ge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxufVxyXG5cclxuLnNraXAtbGluayB7XHJcbiAgICBmb250LXNpemU6IDAuOWVtO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luOiA1cHggMCAxMHB4O1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb3JtLXNpZ251cC1jdGEge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XHJcbiAgcGFkZGluZzogJGNvbnRlbnQtbWFyZ2luO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBub25lO1xyXG5cclxuICBoMixcclxuICBwLFxyXG4gIGEge1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1zaWdudXAgJiB7XHJcbiAgICBtYXJnaW46IHJoeXRobSg2KSAoLSRjb250ZW50LW1hcmdpbikgMDtcclxuICB9XHJcbn1cclxuXHJcbi5mb3JtLXRlcm1zIHtcclxuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nO1xyXG5cclxuICAubGFiZWwge1xyXG4gICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1zbSk7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xyXG4gICAgICAubm8tdG91Y2ggJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybS1zaWdudXAge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgaDEsXHJcbiAgaDIge1xyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZm9ybS1jb21wYWN0IHtcclxuICAgIGxhYmVsIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9uLWdyb3VwIHtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5mb3JtLW92ZXJsYXksXHJcbi5wb3B1cC1vdmVybGF5IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDgwMHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG5cclxuLnNsaW0tZm9ybSB7XHJcbiAgQGV4dGVuZCAubWZwLWZvcm0tcG9wdXA7XHJcblxyXG4gICNjb2xvcmJveCAmIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxufVxyXG4uc3RlcHMge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBjbGVhcjogYm90aDtcclxufVxyXG5cclxuLmZvcm0tc2lnbnVwLWJhY2tncm91bmQtd3JhcHBlciB7XHJcbiAgb3BhY2l0eTogMC40O1xyXG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9NDApXCI7XHJcbiAgLmllOCAmIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgd2lkdGg6IDMyNXB4O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIC5mb3JtLXNpZ251cC1iYWNrZ3JvdW5kIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwdnc7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiNzaWdudXAtZm9ybS1oZXJvIHtcclxuICAuaWU4ICYge1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgfVxyXG4gIGZvcm0sIC5mb3JtLWNvbmZpcm1hdGlvbiB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG5cclxuICAgIC5oY3AtbGluayB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9pY29ucy9oY3AtbG9naW4taWNvbi5QTkcpIG5vLXJlcGVhdCAtNXB4IDI1cHg7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzJweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgc21hbGwge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybSArIC5oY3AtbGluayB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0ycmVtO1xyXG4gICAgICAgICAgICByaWdodDogLTJyZW07XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAuc2lnbnVwLWN0YS1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCwgdHJ1ZSkge1xyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggLjE1cyBlYXNlLWluLW91dDtcclxuICAgIC5mb3JtLXNpZ251cC1iYWNrZ3JvdW5kLXdyYXBwZXIge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDMyNXB4O1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAuMTVzIGVhc2UtaW4tb3V0O1xyXG5cclxuICAgICAgLmZvcm0tc2lnbnVwLWJhY2tncm91bmQge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogY2FsYygtMSAqICg1MCUgLSAoMzI1cHggLyAyKSk7XHJcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICAgICAgb3BhY2l0eTogMC40O1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnLWJwLCB0cnVlKSB7XHJcbiAgICAgICAgICBsZWZ0OiBjYWxjKC0xICogKDUwdncgKyAoNzAuNjdlbSAvIDIpIC0gMzI1cHggLSAycmVtKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGxhYmVsIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmctc207XHJcbiAgfVxyXG5cclxuICAuZm9ybS1jb21wYWN0IHtcclxuICAgIGxhYmVsIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmctc207XHJcbiAgfVxyXG4gIC5pbnB1dC1idXR0b25zIGxhYmVsIHtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDI4cHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XHJcbiAgICBsaW5lLWhlaWdodDogcmh5dGhtKDIpO1xyXG4gIH1cclxuICAuaWNvbi1idXR0b25zIGxhYmVsIHtcclxuICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkZm9ybS1zcGFjaW5nLXNtO1xyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAuaW5wdXQtYnV0dG9ucyBsYWJlbCxcclxuICAuaWNvbi1idXR0b25zIGxhYmVsIHtcclxuICAgIG1pbi1oZWlnaHQ6IDM0cHg7XHJcbiAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzRweDtcclxuXHJcbiAgICAuaWNvbi1nZW5kZXItbWFsZTpiZWZvcmUsXHJcbiAgICAuaWNvbi1nZW5kZXItZmVtYWxlOmJlZm9yZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5nZW5kZXItbW9iaWxpdHkge1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcclxuICAgICAgLnJhZGlvLWdyb3VwICsgLmNoZWNrYm94LWdyb3VwIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogJGZvcm0tc3BhY2luZy1zbTtcclxuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDIgKiAoMzRweCArICN7JGZvcm0tc3BhY2luZy1zbX0pKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgYmFja2dyb3VuZDogI2U3ZTdlNztcclxuICBvdmVyZmxvdzogaGlkZGVuOyBcclxuICBwYWRkaW5nOiAwIDJyZW0gMnJlbTtcclxuICBtYXJnaW46IDNyZW0gLTJyZW0gMDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDZweCA2cHggLTVweCAjYjViNWI1O1xyXG5cclxuICAmLmluYWN0aXZlIHtcclxuICAgICAgZm9ybSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaGNwLWxpbmsge1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuXHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgLmRrLXNlbGVjdGVkIHtcclxuICAgICAgY29sb3I6ICMwMGIyY2U7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogJGNvbnRlbnQtbWFyZ2luO1xyXG4gICAgd2lkdGg6IDMyNXB4O1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuXHJcbiAgICBmb3JtIGgxLFxyXG4gICAgZm9ybSBoMiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IHJoeXRobSgzKTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLWdyb3VwIHtcclxuICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDIpO1xyXG4gICAgfVxyXG5cclxuICAgIC5oY3AtbGluayB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTVweCAwO1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3BhbigxMik7XHJcbiAgICB9XHJcblxyXG4gICAgLmRpc2NsYWltZXIge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oMTIpO1xyXG4gICAgICBtYXJnaW4tdG9wOiByaHl0aG0oMik7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtIHtcclxuICAgICAgbWF4LXdpZHRoOiAyNjVweDsgLy8gZml4IElFMTAgZmxleGJveCBvdmVyZmxvdyBidWdcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgICYuaW5hY3RpdmUge1xyXG4gICAgICAgIGhlaWdodDphdXRvO1xyXG4gICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgcGFkZGluZzogMjBweCAzMHB4O1xyXG5cclxuICAgICAgICAmID4gZm9ybSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAaW5jbHVkZSBicmVha3BvaW50KDAgJG1kLCB0cnVlKSB7XHJcbiAgICAgIGZvcm0ge3BhZGRpbmc6IDMwcHggMDt9XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybS1zaWdudXAtZXh0ZXJuYWwge1xyXG5cdC8vZGlzcGxheTogbm9uZTtcclxuXHR6LWluZGV4OiA1O1xyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDAgJG1kKSB7XHJcbiAgICAgICAgcGFkZGluZzogMzBweCAwO1xyXG4gICAgfVxyXG4gICAgXHJcbn1cclxuXHJcbi5mb3JtLXNpZ251cC1leHRlcm5hbCBhIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ei1pbmRleDogNjtcclxufVxyXG5cclxuXHJcbi5mb3JtLXNpZ251cC1jdGEgYSB7XHJcblx0Y29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICAgIHNwYW46bm90KC5pY29uKSB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICB9XHJcblxyXG4gICAgPiAuaWNvbiB7XHJcbiAgICAgICAgbWFyZ2luOiA3cHggMCAwIDNweDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxufSIsIlxyXG4uZ3JpZC1saXN0IHtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAmOmFmdGVyLFxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gIH1cclxuXHJcbiAgdWwge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIHRyYW5zaXRpb246IGhlaWdodCAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtYm9keTtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQsIHRydWUpIHtcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG5cclxuICAgICY6bnRoLWNoaWxkKG4rMikge1xyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiByaHl0aG0oNik7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZWxtLWltYWdlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbi1sZWZ0OiAtJGNvbnRlbnQtbWFyZ2luO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtJGNvbnRlbnQtbWFyZ2luO1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbG0tY29udGVudCxcclxuICAuZWxtLWNvbnRlbnQtb3ZlciB7XHJcbiAgICAuaWU4ICYge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgICAgYmFja2dyb3VuZDogIzMzMztcclxuICAgIH1cclxuICAgIC5jYXRlZ29yeSB7XHJcbiAgICAgIG1hcmdpbjogcmh5dGhtKDIpIDA7XHJcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgfVxyXG4gICAgaDIge1xyXG4gICAgICBtYXJnaW46IHJoeXRobSgxKSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHAsXHJcbiAgICBhLm1vcmUtbGluayB7XHJcbiAgICAgIG1hcmdpbjogcmh5dGhtKDEpIDA7XHJcbiAgICB9XHJcblxyXG4gICAgYS5tb3JlLWxpbmsge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXJzO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcnM7XHJcbiAgICAgIHRleHQtaW5kZW50OiAtOTk5ZW07XHJcblxyXG4gICAgICAmLFxyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmljb24ge1xyXG4gICAgICAgIC8vQGluY2x1ZGUgaWNvbigkYXJyb3ctcmlnaHQpO1xyXG4gICAgICAgIEBleHRlbmQgLmljb24tYXJyb3ctcmlnaHQ7XHJcblxyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gICAgICAgIHRleHQtaW5kZW50OiA5OTllbTtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBAZXh0ZW5kICVpY29uLWZvbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbWcuYmx1ciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5lbG0tY29udGVudCB7XHJcbiAgICBhLm1vcmUtbGluayB7XHJcbiAgICAgIHRleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAuaWNvbiB7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAuZWxtLWNvbnRlbnQtb3ZlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAtOTk5OWVtO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogZ3V0dGVyLXNwYW4oKTtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIC8qXHJcbiAgICAgICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuKDQpO1xyXG5cclxuICAgICAgICAgICYubGFzdCB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OjAgIWltcG9ydGFudDtcclxuICAgICAgICAgIH1cclxuICAgICAgKi9cclxuICAgICAgJi5wb3MtMSB7XHJcbiAgICAgICAgQGluY2x1ZGUgaXNvbGF0aW9uLXNwYW4oNCwgMSwgJ2xlZnQnKTtcclxuICAgICAgfVxyXG4gICAgICAmLnBvcy0yIHtcclxuICAgICAgICBAaW5jbHVkZSBpc29sYXRpb24tc3Bhbig0LCA1KTtcclxuICAgICAgfVxyXG4gICAgICAmLnBvcy0zIHtcclxuICAgICAgICBAaW5jbHVkZSBpc29sYXRpb24tc3Bhbig0LCA5LCAncmlnaHQnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDI2MCAvIDMyMiAqIDEwMCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bnRoLWNoaWxkKG4rMikge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZWxtLWltYWdlIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHJcbiAgICAgIGltZyB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5lbG0tY29udGVudCxcclxuICAgIC5lbG0tY29udGVudC1vdmVyIHtcclxuXHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICAuY2F0ZWdvcnkge1xyXG4gICAgICAgIG1hcmdpbjogcmh5dGhtKDIpIDAgcmh5dGhtKDEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBoMiB7XHJcbiAgICAgICAgLypcclxuICAgICAgICBkaXNwbGF5OmZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBoZWlnaHQ6NTBweDtcclxuICAgICAgICAqL1xyXG4gICAgICAgIG1hcmdpbjogcmh5dGhtKDIpIDAgcmh5dGhtKDEpO1xyXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtbGcpO1xyXG4gICAgICAgIEBpbmNsdWRlIGFkanVzdC1sZWFkaW5nLXRvKDI1cHgvJGJhc2UtbGluZS1oZWlnaHQsICRzaXplLWxnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcCxcclxuICAgICAgYS5tb3JlLWxpbmsge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgYS5tb3JlLWxpbmsge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2F0ZWdvcnksXHJcbiAgICAgIGgyLFxyXG4gICAgICBwLFxyXG4gICAgICAmID4gYSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgzMCAvIDMyMiAqIDEwMCUpO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogKDMwIC8gMzIyICogMTAwJSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuNCk7XHJcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgLjMpO1xyXG5cclxuXHJcbiAgICAgIGltZy5ibHVyIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBmaWx0ZXI6IGJsdXIoMTBweCkgYnJpZ2h0bmVzcygwLjg1KTtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xyXG4gICAgICAgIC8vYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgIHotaW5kZXg6IC0yO1xyXG5cclxuICAgICAgICAubm8tY3NzZmlsdGVycyAmIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmVsbS1jb250ZW50LW92ZXIge1xyXG4gICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBib3R0b206IC0xMDAlO1xyXG4gICAgICB0cmFuc2l0aW9uOiBib3R0b20gLjM1cyBlYXNlO1xyXG5cclxuICAgICAgLmNhdGVnb3J5IHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBoMiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1oZWFkZXJzO1xyXG4gICAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtbWQpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcblxyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAlLCAwKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgZWFzZTtcclxuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBwIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtc20pO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgcCxcclxuICAgICAgYS5tb3JlLWxpbmsge1xyXG4gICAgICAgIG1hcmdpbjogcmh5dGhtKDEpIDklO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAlLCAwKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgZWFzZTtcclxuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhLm1vcmUtbGluayB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC40cztcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAubm8tdG91Y2ggJiB7XHJcbiAgICAgIGxpLm92ZXIge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICAgLmVsbS1jb250ZW50IHtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZWxtLWNvbnRlbnQtb3ZlciB7XHJcbiAgICAgICAgICBib3R0b206IDA7XHJcblxyXG4gICAgICAgICAgaDIsXHJcbiAgICAgICAgICBwLFxyXG4gICAgICAgICAgJiA+IGEge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCwgdHJ1ZSkge1xyXG4gICAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICAgIGgyIHtcclxuICAgICAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUteGwpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oMjVweC8kYmFzZS1saW5lLWhlaWdodCwgJHNpemUteGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmdyaWQtbGlzdCB7XHJcbiAgLnR5cGUtdmlkZW8ge1xyXG4gICAgICAvL3dpZHRoOiA2NiU7XHJcbiAgICBhLm1vcmUtbGluayAuaWNvbiB7XHJcbiAgICAgIC8vQGluY2x1ZGUgaWNvbigkbWVkaWEtcGxheSk7XHJcbiAgICAgIEBleHRlbmQgLmljb24tbWVkaWEtcGxheTtcclxuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgY29sb3I6IGluaGVyaXQ7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGV4dGVuZCAlaWNvbi1mb250O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuXHJcbiAgICAgIC5lbG0tY29udGVudCB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjUlO1xyXG5cclxuICAgICAgICBhLm1vcmUtbGluayB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xyXG4gICAgICAgICAgcmlnaHQ6ICgzMCAvIDMyMiAqIDEwMCUpO1xyXG4gICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtKCRzaXplLXh4eGwgLyAyKTtcclxuXHJcbiAgICAgICAgICAuaWNvbiB7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXh4eGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW1zOm5vdCguc2luZ2xlLWNvbCkge1xyXG4gICAgLnZpZC0yeDEge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSwgdHJ1ZSkge1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4oOCk7XHJcbiAgICAgICAgKi9cclxuXHJcbiAgICAgICAgJi5wb3MtMSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBpc29sYXRpb24tc3Bhbig4LCAxLCAnbGVmdCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLnBvcy0yIHtcclxuICAgICAgICAgIEBpbmNsdWRlIGlzb2xhdGlvbi1zcGFuKDgsIDUsICdyaWdodCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgcGFkZGluZy10b3A6IDI2MCAvIDY2MSAqIDEwMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY2F0ZWdvcnksXHJcbiAgICAgICAgaDIsXHJcbiAgICAgICAgcCxcclxuICAgICAgICBhLm1vcmUtbGluayB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogKDMwIC8gNjYxICogMTAwJSk7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICgzMCAvIDY2MSAqIDEwMCUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgICAgIGEubW9yZS1saW5rIHtcclxuICAgICAgICAgICAgcmlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW1zLnNpbmdsZS1jb2wge1xyXG4gICAgLnR5cGUtdmlkZW8ge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSwgdHJ1ZSkge1xyXG4gICAgICAgIC5lbG0taW1hZ2UsXHJcbiAgICAgICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNTAlO1xyXG4gICAgICAgICAgICB3aWR0aDogMjAwJTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50eXBlLXN1cnZleSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCAkY29sb3ItYm9yZGVycztcclxuICB9XHJcblxyXG4gIC50eXBlLWN0YSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcHJpbWFyeTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogcmh5dGhtKDIpO1xyXG5cclxuICAgICAgaDIsXHJcbiAgICAgIHAsXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHRleHQtc2hhZG93OiBub25lO1xyXG4gICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG4gICAgICB9XHJcbiAgICAgIGEge1xyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgLy9tYXJnaW4tcmlnaHQ6IDE1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBoMiB7XHJcbiAgICAgICAgLy9AaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXhsKTtcclxuICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRsaWdodDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGEge1xyXG4gICAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtbGcpO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgwICRzbSkge1xyXG4gICAgIC8vIG1hcmdpbi1sZWZ0OiAtJGNvbnRlbnQtbWFyZ2luO1xyXG4gICAgIC8vIG1hcmdpbi1yaWdodDogLSRjb250ZW50LW1hcmdpbjtcclxuICAgICAgcGFkZGluZzogJGNvbnRlbnQtbWFyZ2luO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQsIHRydWUpIHtcclxuICAgICAgaDIge1xyXG4gICAgICAgIC8vQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14eGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5pc290b3BlIC5pc290b3BlLWl0ZW0ge1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XHJcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XHJcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmh5dGhtKDYpO1xyXG4gICAgJi5pc290b3BlLWhpZGRlbiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20pIHtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICB9XHJcblxyXG59IiwiXHJcbmhlYWRlciNwYWdlLWhlYWRlciB7XHJcbiAgbWluLWhlaWdodDogNThweDtcclxuICB6LWluZGV4OiAxMDtcclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAvL0BpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UobGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZiAwJSwgI2ZmZiA1MCUsICNmZWZlZmUgNTElLCAjZjNmM2YzIDEwMCUpKTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmIDAlLCAjZmZmIDUwJSwgI2ZlZmVmZSA1MSUsICNmM2YzZjMgMTAwJSk7XHJcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDU4cHg7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAvKlxyXG4gICAgICBiYWNrZ3JvdW5kOlxyXG5cclxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZmYgMCUsICNmZmYgNTAlLCAjZmVmZWZlIDUxJSwgI2YzZjNmMyAxMDAlKSxcclxuICAgICAgICAgICNmZmY7XHJcbiAgKi9cclxuICBAZXh0ZW5kICVkaXZpZGVyLXNoYWRvdy1hZnRlcjtcclxuXHJcbiAgLmJyYW5kLXByaW1hcnkge1xyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogMTUwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIG1hcmdpbi1yaWdodDogLTE1MHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDE1cHg7XHJcblxyXG4gICAgY29sb3I6ICRjb2xvci1icmFuZDtcclxuXHJcbiAgICBzcGFuIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIC8vQGluY2x1ZGUgc3ByaXRlLTJ4KCRzcHJpdGUtbG9nby1jb2xvcGxhc3QtMngsICRzcHJpdGUtbG9nby1jb2xvcGxhc3QpO1xyXG4gICAgICBAaW5jbHVkZSBzcHJpdGUoJHNwcml0ZS1sb2dvLWNvbG9wbGFzdCk7XHJcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTIwcHggYXV0bztcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmJyYW5kLXNlY29uZGFyeSB7XHJcbiAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47XHJcblxyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgd2lkdGg6IDExMHB4O1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogLTE1MHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDBweDtcclxuXHJcbiAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgQGluY2x1ZGUgc3ByaXRlKCRzcHJpdGUtbG9nby1jb2xvcGxhc3QtY2FyZSk7XHJcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogODlweCBhdXRvO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYnJhbmQtcHJpbWFyeSxcclxuICAuYnJhbmQtc2Vjb25kYXJ5IHtcclxuICAgIHNwYW4ge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgdGV4dC1pbmRlbnQ6IC05OTllbTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KCRtZCwgdHJ1ZSkge1xyXG5cclxuICBoZWFkZXIjcGFnZS1oZWFkZXIge1xyXG4gICAgaGVpZ2h0OiA4MHB4O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XHJcblxyXG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XHJcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC5icmFuZC1wcmltYXJ5IHtcclxuICAgICAgcGFkZGluZy10b3A6IDM3cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmJyYW5kLXNlY29uZGFyeSB7XHJcbiAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LW5vdC1oaWRkZW47XHJcbiAgICAgIHBhZGRpbmctdG9wOiAyM3B4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iLCIuaGVybyB7XHJcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuXHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDBweDtcclxuXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICYuZnVsbC1zaXplIHtcclxuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XHJcbiAgICAgICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZWxtLWltYWdlIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLSRjb250ZW50LW1hcmdpbjtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kY29udGVudC1tYXJnaW47XHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICAgIGgxIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14eGwpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14eHhsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBwLFxyXG4gICAgICAgIHVsLFxyXG4gICAgICAgIG9sIHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWhlYWRlcjtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLWxnKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oNCk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10byg0KTtcclxuICAgICAgICAgICAgbWFyZ2luOiAxZW0gMDtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpOm50aC1jaGlsZChuKzIpIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmNoZWNrbWFya3Mge1xyXG4gICAgICAgICAgICBsaTpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4yZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgQGV4dGVuZCB1bC5jaGVja21hcmtzO1xyXG4gICAgICAgICAgICBsaTpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoMCAkbWQsIHRydWUpIHtcclxuICAgIC5oZXJvIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kLCB0cnVlKSB7XHJcbiAgICAuaGVybyB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQyMHB4O1xyXG4gICAgICAgIC8vbWF4LWhlaWdodDogNTAwcHg7XHJcblxyXG4gICAgICAgLyogJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDM3LjI2JTtcclxuXHJcbiAgICAgICAgICAgIC8vcGFkZGluZy10b3A6IDEzMzMgLyAyMDAwICogMTAwJTtcclxuXHJcbiAgICAgICAgfSovXHJcblxyXG4gICAgICAgIC5jb250ZW50LXdyYXBwZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5lbG0taW1hZ2Uge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgLy8gbWluLWhlaWdodDogNDIwcHg7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIC8vbWluLWhlaWdodDogNDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpub3QoLmZ1bGwtc2l6ZSkge1xyXG4gICAgICAgICAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0NTBweDtcclxuICAgICAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgLjIpLCAwIDAgMjVweCByZ2JhKDAsIDAsIDAsIC4zKTtcclxuXHJcbiAgICAgICAgICAgICAgICBoMSxcclxuICAgICAgICAgICAgICAgIHAsXHJcbiAgICAgICAgICAgICAgICBhLFxyXG4gICAgICAgICAgICAgICAgdWwsXHJcbiAgICAgICAgICAgICAgICBvbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMXMgZWFzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXNtKTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgLm5vLXRvdWNoICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vYm9keTpub3QoLnBhZ2UtZnJvbnQpICYge1xyXG4gICAgICAgICAgICAgICAgcCxcclxuICAgICAgICAgICAgICAgIHVsLFxyXG4gICAgICAgICAgICAgICAgb2wge1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNTIwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL31cclxuXHJcbiAgICAgICAgICAgICAgICAuY2hlY2ttYXJrcyBsaTpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHRvcDogMTAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5iYWNrZ3JvdW5kLWxpZ2h0IHtcclxuICAgICAgICAgICAgLmVsbS1jb250ZW50IHtcclxuXHJcbiAgICAgICAgICAgICAgICBoMSxcclxuICAgICAgICAgICAgICAgIHAsXHJcbiAgICAgICAgICAgICAgICB1bCxcclxuICAgICAgICAgICAgICAgIG9sIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uaGVyby10eXBlLWltZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMTBweCAwO1xyXG5cclxufVxyXG5AaW5jbHVkZSBicmVha3BvaW50KCRsZy1icCwgdHJ1ZSkge1xyXG4gICAgLmhlcm8ge1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzNy4yNiU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29udGVudC13cmFwcGVyIHtcclxuICAgICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSgkbGctYnAvMik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLyogTWFnbmlmaWMgUG9wdXAgQ1NTICovXHJcblxyXG4vL0BpbXBvcnQgXCJzZXR0aW5nc1wiO1xyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vXHJcbi8vIENvbnRlbnRzOlxyXG4vL1xyXG4vLyAxLiBEZWZhdWx0IFNldHRpbmdzXHJcbi8vIDIuIEdlbmVyYWwgc3R5bGVzXHJcbi8vICAgIC0gVHJhbnNsdXNjZW50IG92ZXJsYXlcclxuLy8gICAgLSBDb250YWluZXJzLCB3cmFwcGVyc1xyXG4vLyAgICAtIEN1cnNvcnNcclxuLy8gICAgLSBIZWxwZXIgY2xhc3Nlc1xyXG4vLyAzLiBBcHBlYXJhbmNlXHJcbi8vICAgIC0gUHJlbG9hZGVyICYgdGV4dCB0aGF0IGRpc3BsYXlzIGVycm9yIG1lc3NhZ2VzXHJcbi8vICAgIC0gQ1NTIHJlc2V0IGZvciBidXR0b25zXHJcbi8vICAgIC0gQ2xvc2UgaWNvblxyXG4vLyAgICAtIFwiMSBvZiBYXCIgY291bnRlclxyXG4vLyAgICAtIE5hdmlnYXRpb24gKGxlZnQvcmlnaHQpIGFycm93c1xyXG4vLyAgICAtIElmcmFtZSBjb250ZW50IHR5cGUgc3R5bGVzXHJcbi8vICAgIC0gSW1hZ2UgY29udGVudCB0eXBlIHN0eWxlc1xyXG4vLyAgICAtIE1lZGlhIHF1ZXJ5IHdoZXJlIHNpemUgb2YgYXJyb3dzIGlzIHJlZHVjZWRcclxuLy8gICAgLSBJRTcgc3VwcG9ydFxyXG4vL1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyAxLiBEZWZhdWx0IFNldHRpbmdzXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuJG1mcC1vdmVybGF5LWNvbG9yOiAjMGIwYjBiICFkZWZhdWx0O1xyXG4kbWZwLW92ZXJsYXktb3BhY2l0eTogMC43NSAhZGVmYXVsdDtcclxuJG1mcC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpICFkZWZhdWx0O1xyXG4vLyBzaGFkb3cgb24gaW1hZ2Ugb3IgaWZyYW1lXHJcbiRtZnAtcG9wdXAtcGFkZGluZy1sZWZ0OiAkY29udGVudC1tYXJnaW4gIWRlZmF1bHQ7XHJcbi8vIFBhZGRpbmcgZnJvbSBsZWZ0IGFuZCBmcm9tIHJpZ2h0IHNpZGVcclxuJG1mcC1wb3B1cC1wYWRkaW5nLWxlZnQtbW9iaWxlOiA2cHggIWRlZmF1bHQ7XHJcbi8vIFNhbWUgYXMgYWJvdmUsIGJ1dCBpcyBhcHBsaWVkIHdoZW4gd2lkdGggb2Ygd2luZG93IGlzIGxlc3MgdGhhbiA4MDBweFxyXG5cclxuJG1mcC16LWluZGV4LWJhc2U6IDEwNDAgIWRlZmF1bHQ7XHJcbi8vIEJhc2Ugei1pbmRleCBvZiBwb3B1cFxyXG4kbWZwLWluY2x1ZGUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xyXG4vLyBpbmNsdWRlIHN0eWxlcyBmb3IgbmF2IGFycm93c1xyXG4kbWZwLWNvbnRyb2xzLW9wYWNpdHk6IDAuNjUgIWRlZmF1bHQ7XHJcbiRtZnAtY29udHJvbHMtY29sb3I6ICNGRkYgIWRlZmF1bHQ7XHJcbiRtZnAtY29udHJvbHMtYm9yZGVyLWNvbG9yOiAjM0YzRjNGICFkZWZhdWx0O1xyXG4kbWZwLWlubmVyLWNsb3NlLWljb24tY29sb3I6ICMzMzMgIWRlZmF1bHQ7XHJcbiRtZnAtY29udHJvbHMtdGV4dC1jb2xvcjogI0NDQyAhZGVmYXVsdDtcclxuLy8gQ29sb3Igb2YgcHJlbG9hZGVyIGFuZCBcIjEgb2YgWFwiIGluZGljYXRvclxyXG4kbWZwLWNvbnRyb2xzLXRleHQtY29sb3ItaG92ZXI6ICNGRkYgIWRlZmF1bHQ7XHJcbiRtZnAtSUU3c3VwcG9ydDogZmFsc2UgIWRlZmF1bHQ7XHJcbi8vIFZlcnkgYmFzaWMgSUU3IHN1cHBvcnRcclxuXHJcbi8vIElmcmFtZS10eXBlIG9wdGlvbnNcclxuJG1mcC1pbmNsdWRlLWlmcmFtZS10eXBlOiB0cnVlICFkZWZhdWx0O1xyXG4kbWZwLWlmcmFtZS1wYWRkaW5nLXRvcDogNDBweCAhZGVmYXVsdDtcclxuJG1mcC1pZnJhbWUtYmFja2dyb3VuZDogIzAwMCAhZGVmYXVsdDtcclxuJG1mcC1pZnJhbWUtbWF4LXdpZHRoOiA5MDBweCAhZGVmYXVsdDtcclxuJG1mcC1pZnJhbWUtcmF0aW86IDkvMTYgIWRlZmF1bHQ7XHJcblxyXG4vLyBJbWFnZS10eXBlIG9wdGlvbnNcclxuJG1mcC1pbmNsdWRlLWltYWdlLXR5cGU6IHRydWUgIWRlZmF1bHQ7XHJcbiRtZnAtaW1hZ2UtYmFja2dyb3VuZDogIzQ0NCAhZGVmYXVsdDtcclxuJG1mcC1pbWFnZS1wYWRkaW5nLXRvcDogNDBweCAhZGVmYXVsdDtcclxuJG1mcC1pbWFnZS1wYWRkaW5nLWJvdHRvbTogNDBweCAhZGVmYXVsdDtcclxuJG1mcC1pbmNsdWRlLW1vYmlsZS1sYXlvdXQtZm9yLWltYWdlOiBmYWxzZSAhZGVmYXVsdDtcclxuLy8gUmVtb3ZlcyBwYWRkaW5ncyBmcm9tIHRvcCBhbmQgYm90dG9tXHJcblxyXG4vLyBJbWFnZSBjYXB0aW9uIG9wdGlvbnNcclxuJG1mcC1jYXB0aW9uLXRpdGxlLWNvbG9yOiAjRjNGM0YzICFkZWZhdWx0O1xyXG4kbWZwLWNhcHRpb24tc3VidGl0bGUtY29sb3I6ICNCREJEQkQgIWRlZmF1bHQ7XHJcblxyXG4vLyBBMTF5XHJcbiRtZnAtdXNlLXZpc3VhbGx5aGlkZGVuOiBmYWxzZSAhZGVmYXVsdDtcclxuLy8gSGlkZSBjb250ZW50IGZyb20gYnJvd3NlcnMsIGJ1dCBtYWtlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnNcclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4vLyAyLiBHZW5lcmFsIHN0eWxlc1xyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbi8vIFRyYW5zbHVzY2VudCBvdmVybGF5XHJcbi5tZnAtYmcge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDI7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcblxyXG4gIGJhY2tncm91bmQ6ICRtZnAtb3ZlcmxheS1jb2xvcjtcclxuICBvcGFjaXR5OiAkbWZwLW92ZXJsYXktb3BhY2l0eTtcclxuXHJcbiAgQGlmICRtZnAtSUU3c3VwcG9ydCB7XHJcbiAgICBmaWx0ZXI6IHVucXVvdGUoXCJhbHBoYShvcGFjaXR5PSN7JG1mcC1vdmVybGF5LW9wYWNpdHkqMTAwfSlcIik7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBXcmFwcGVyIGZvciBwb3B1cFxyXG4ubWZwLXdyYXAge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDM7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgLy8gZml4ZXMgd2Via2l0IGJ1ZyB0aGF0IGNhbiBjYXVzZSBcImZhbHNlXCIgc2Nyb2xsYmFyXHJcbn1cclxuXHJcbi8vIFJvb3QgY29udGFpbmVyXHJcbi5tZnAtY29udGFpbmVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICBwYWRkaW5nOiAwICRjb250ZW50LW1hcmdpbjtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi8vIFZlcnRpY2FsIGNlbnRlcmVyIGhlbHBlclxyXG4ubWZwLWNvbnRhaW5lciB7XHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUmVtb3ZlIHZlcnRpY2FsIGNlbnRlcmluZyB3aGVuIHBvcHVwIGhhcyBjbGFzcyBgbWZwLWFsaWduLXRvcGBcclxuLm1mcC1hbGlnbi10b3Age1xyXG4gIC5tZnAtY29udGFpbmVyIHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIFBvcHVwIGNvbnRlbnQgaG9sZGVyXHJcbi5tZnAtY29udGVudCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgbWluLWhlaWdodDogNTAwcHg7XHJcbiAgei1pbmRleDogJG1mcC16LWluZGV4LWJhc2UgKyA1O1xyXG59XHJcblxyXG4ubWZwLWlubGluZS1ob2xkZXIsXHJcbi5tZnAtYWpheC1ob2xkZXIge1xyXG4gIC5tZnAtY29udGVudCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGN1cnNvcjogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi8vIEN1cnNvcnNcclxuLm1mcC1hamF4LWN1ciB7XHJcbiAgY3Vyc29yOiBwcm9ncmVzcztcclxufVxyXG5cclxuLm1mcC16b29tLW91dC1jdXIge1xyXG4gICYsIC5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2Uge1xyXG4gICAgY3Vyc29yOiAtbW96LXpvb20tb3V0O1xyXG4gICAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xyXG4gICAgY3Vyc29yOiB6b29tLW91dDtcclxuICB9XHJcbn1cclxuXHJcbi5tZnAtem9vbSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xyXG4gIGN1cnNvcjogLW1vei16b29tLWluO1xyXG4gIGN1cnNvcjogem9vbS1pbjtcclxufVxyXG5cclxuLm1mcC1hdXRvLWN1cnNvciB7XHJcbiAgLm1mcC1jb250ZW50IHtcclxuICAgIGN1cnNvcjogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi5tZnAtY2xvc2UsXHJcbi5tZnAtYXJyb3csXHJcbi5tZnAtcHJlbG9hZGVyLFxyXG4ubWZwLWNvdW50ZXIge1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcblxyXG4vLyBIaWRlIHRoZSBpbWFnZSBkdXJpbmcgdGhlIGxvYWRpbmdcclxuLm1mcC1sb2FkaW5nIHtcclxuICAmLm1mcC1maWd1cmUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEhlbHBlciBjbGFzcyB0aGF0IGhpZGVzIHN0dWZmXHJcbkBpZiAkbWZwLXVzZS12aXN1YWxseWhpZGRlbiB7XHJcbiAgLy8gRnJvbSBIVE1MNSBCb2lsZXJwbGF0ZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL3Y0LjIuMC9kb2MvY3NzLm1kI3Zpc3VhbGx5aGlkZGVuXHJcbiAgLm1mcC1oaWRlIHtcclxuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59IEBlbHNlIHtcclxuICAubWZwLWhpZGUge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbi8vIDMuIEFwcGVhcmFuY2VcclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4vLyBQcmVsb2FkZXIgYW5kIHRleHQgdGhhdCBkaXNwbGF5cyBlcnJvciBtZXNzYWdlc1xyXG4ubWZwLXByZWxvYWRlciB7XHJcbiAgY29sb3I6ICRtZnAtY29udHJvbHMtdGV4dC1jb2xvcjtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbi10b3A6IC0wLjhlbTtcclxuICBsZWZ0OiA4cHg7XHJcbiAgcmlnaHQ6IDhweDtcclxuICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDQ7XHJcbiAgYSB7XHJcbiAgICBjb2xvcjogJG1mcC1jb250cm9scy10ZXh0LWNvbG9yO1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAkbWZwLWNvbnRyb2xzLXRleHQtY29sb3ItaG92ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBIaWRlIHByZWxvYWRlciB3aGVuIGNvbnRlbnQgc3VjY2Vzc2Z1bGx5IGxvYWRlZFxyXG4ubWZwLXMtcmVhZHkge1xyXG4gIC5tZnAtcHJlbG9hZGVyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBIaWRlIGNvbnRlbnQgd2hlbiBpdCB3YXMgbm90IGxvYWRlZFxyXG4ubWZwLXMtZXJyb3Ige1xyXG4gIC5tZnAtY29udGVudCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQ1NTLXJlc2V0IGZvciBidXR0b25zXHJcbmJ1dHRvbiB7XHJcbiAgJi5tZnAtY2xvc2UsXHJcbiAgJi5tZnAtYXJyb3cge1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB6LWluZGV4OiAkbWZwLXotaW5kZXgtYmFzZSArIDY7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXI6IDBcclxuICB9XHJcbn1cclxuXHJcbi8vIENsb3NlIGljb25cclxuLm1mcC1jbG9zZSB7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG5cclxuICBsaW5lLWhlaWdodDogNDRweDtcclxuXHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMTBweDtcclxuICByaWdodDogMTBweDtcclxuXHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBvcGFjaXR5OiAxO1xyXG4gIEBpZiAkbWZwLUlFN3N1cHBvcnQge1xyXG4gICAgZmlsdGVyOiB1bnF1b3RlKFwiYWxwaGEob3BhY2l0eT0jeyRtZnAtY29udHJvbHMtb3BhY2l0eSoxMDB9KVwiKTtcclxuICB9XHJcbiAgcGFkZGluZzogMDtcclxuICBjb2xvcjogJG1mcC1jb250cm9scy1jb2xvcjtcclxuICBmb250LXNpemU6IDQwcHg7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG5cclxuICBmb250LWZhbWlseTogQmFza2VydmlsbGUsIG1vbm9zcGFjZTtcclxuXHJcbiAgd2lkdGg6IDI1cHg7XHJcbiAgaGVpZ2h0OiAyNXB4O1xyXG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2Nsb3NlLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHJcbiAgLm5vLXRvdWNoICY6aG92ZXIsXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIG9wYWNpdHk6ICRtZnAtY29udHJvbHMtb3BhY2l0eTtcclxuICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgQGlmICRtZnAtSUU3c3VwcG9ydCB7XHJcbiAgICAgIGZpbHRlcjogdW5xdW90ZShcImFscGhhKG9wYWNpdHk9I3sxKjEwMH0pXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xyXG4gICAgcmlnaHQ6IDEwMHB4O1xyXG4gICAgdG9wOiA3MHB4O1xyXG4gICAgd2lkdGg6IDQ0cHg7XHJcbiAgICBoZWlnaHQ6IDQ0cHg7XHJcbiAgICBmb250LXNpemU6IDEwMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLm1mcC1jbG9zZS1idG4taW4ge1xyXG4gIC5tZnAtY2xvc2Uge1xyXG4gICAgY29sb3I6ICRtZnAtaW5uZXItY2xvc2UtaWNvbi1jb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi5tZnAtaW1hZ2UtaG9sZGVyLFxyXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xyXG4gIC5tZnAtY2xvc2Uge1xyXG4gICAgY29sb3I6ICRtZnAtY29udHJvbHMtY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBcIjEgb2YgWFwiIGNvdW50ZXJcclxuLm1mcC1jb3VudGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGNvbG9yOiAkbWZwLWNvbnRyb2xzLXRleHQtY29sb3I7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi8vIE5hdmlnYXRpb24gYXJyb3dzXHJcbkBpZiAkbWZwLWluY2x1ZGUtYXJyb3dzIHtcclxuICAubWZwLWFycm93IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIG9wYWNpdHk6ICRtZnAtY29udHJvbHMtb3BhY2l0eTtcclxuICAgIEBpZiAkbWZwLUlFN3N1cHBvcnQge1xyXG4gICAgICBmaWx0ZXI6IHVucXVvdGUoXCJhbHBoYShvcGFjaXR5PSN7JG1mcC1jb250cm9scy1vcGFjaXR5KjEwMH0pXCIpO1xyXG4gICAgfVxyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBtYXJnaW4tdG9wOiAtNTVweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogOTBweDtcclxuICAgIGhlaWdodDogMTEwcHg7XHJcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IC01NHB4O1xyXG4gICAgfVxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICBAaWYgJG1mcC1JRTdzdXBwb3J0IHtcclxuICAgICAgICBmaWx0ZXI6IHVucXVvdGUoXCJhbHBoYShvcGFjaXR5PSN7MSoxMDB9KVwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAmOmFmdGVyLFxyXG4gICAgLm1mcC1iLFxyXG4gICAgLm1mcC1hIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB3aWR0aDogMDtcclxuICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbWFyZ2luLXRvcDogMzVweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDM1cHg7XHJcbiAgICAgIGJvcmRlcjogbWVkaXVtIGluc2V0IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIsXHJcbiAgICAubWZwLWEge1xyXG5cclxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcclxuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTNweDtcclxuICAgICAgdG9wOiA4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAubWZwLWIge1xyXG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAyMXB4O1xyXG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xyXG4gICAgICBvcGFjaXR5OiAwLjc7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLm1mcC1hcnJvdy1sZWZ0IHtcclxuICAgIGxlZnQ6IDA7XHJcblxyXG4gICAgJjphZnRlcixcclxuICAgIC5tZnAtYSB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMTdweCBzb2xpZCAkbWZwLWNvbnRyb2xzLWNvbG9yO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMzFweDtcclxuICAgIH1cclxuICAgICY6YmVmb3JlLFxyXG4gICAgLm1mcC1iIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMjdweCBzb2xpZCAkbWZwLWNvbnRyb2xzLWJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZnAtYXJyb3ctcmlnaHQge1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICAmOmFmdGVyLFxyXG4gICAgLm1mcC1hIHtcclxuICAgICAgYm9yZGVyLWxlZnQ6IDE3cHggc29saWQgJG1mcC1jb250cm9scy1jb2xvcjtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDM5cHhcclxuICAgIH1cclxuICAgICY6YmVmb3JlLFxyXG4gICAgLm1mcC1iIHtcclxuICAgICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgJG1mcC1jb250cm9scy1ib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBJZnJhbWUgY29udGVudCB0eXBlXHJcbkBpZiAkbWZwLWluY2x1ZGUtaWZyYW1lLXR5cGUge1xyXG4gIC5tZnAtaWZyYW1lLWhvbGRlciB7XHJcbiAgICBwYWRkaW5nLXRvcDogJG1mcC1pZnJhbWUtcGFkZGluZy10b3A7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1mcC1pZnJhbWUtcGFkZGluZy10b3A7XHJcbiAgICAubWZwLWNvbnRlbnQge1xyXG4gICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogJG1mcC1pZnJhbWUtbWF4LXdpZHRoO1xyXG4gICAgfVxyXG4gICAgLy8ubWZwLWNsb3NlIHtcclxuICAgIC8vICB0b3A6IC00MHB4O1xyXG4gICAgLy8gIHdpZHRoOiA0MHB4O1xyXG4gICAgLy99XHJcbiAgICAubWZwLW1lc3NhZ2Uge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogLTM0cHg7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgLm1lc3NhZ2UtdHJpZ2dlciB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG5cclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICB3aWR0aDogMmVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAyZW07XHJcbiAgICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyZW07XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxZW07XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDFweCAjZmZmO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLm1lc3NhZ2Uge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICYub3ZlciB7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG5cclxuICAgICAgICAubWVzc2FnZSB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzNHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzNHB4KTtcclxuICAgICAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtc20pO1xyXG4gICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oMyk7XHJcbiAgICAgICAgICBwYWRkaW5nOiAkY29udGVudC1tYXJnaW47XHJcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjcpO1xyXG4gICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5tZnAtaWZyYW1lLXNjYWxlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nLXRvcDogJG1mcC1pZnJhbWUtcmF0aW8gKiAxMDAlO1xyXG4gICAgaWZyYW1lIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBib3gtc2hhZG93OiAkbWZwLXNoYWRvdztcclxuICAgICAgYmFja2dyb3VuZDogJG1mcC1pZnJhbWUtYmFja2dyb3VuZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEltYWdlIGNvbnRlbnQgdHlwZVxyXG5AaWYgJG1mcC1pbmNsdWRlLWltYWdlLXR5cGUge1xyXG5cclxuICAvKiBNYWluIGltYWdlIGluIHBvcHVwICovXHJcbiAgaW1nIHtcclxuICAgICYubWZwLWltZyB7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgcGFkZGluZzogJG1mcC1pbWFnZS1wYWRkaW5nLXRvcCAwICRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b207XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogVGhlIHNoYWRvdyBiZWhpbmQgdGhlIGltYWdlICovXHJcbiAgLm1mcC1maWd1cmUge1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgdG9wOiAkbWZwLWltYWdlLXBhZGRpbmctdG9wO1xyXG4gICAgICBib3R0b206ICRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b207XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgIGJveC1zaGFkb3c6ICRtZnAtc2hhZG93O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkbWZwLWltYWdlLWJhY2tncm91bmQ7XHJcbiAgICB9XHJcbiAgICBzbWFsbCB7XHJcbiAgICAgIGNvbG9yOiAkbWZwLWNhcHRpb24tc3VidGl0bGUtY29sb3I7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xyXG4gICAgfVxyXG4gICAgZmlndXJlIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAubWZwLWJvdHRvbS1iYXIge1xyXG4gICAgbWFyZ2luLXRvcDogLSRtZnAtaW1hZ2UtcGFkZGluZy1ib3R0b20gKyA0O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAxMDAlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgY3Vyc29yOiBhdXRvO1xyXG4gIH1cclxuICAubWZwLXRpdGxlIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBsaW5lLWhlaWdodDogMThweDtcclxuICAgIGNvbG9yOiAkbWZwLWNhcHRpb24tdGl0bGUtY29sb3I7XHJcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNnB4OyAvLyBsZWF2ZSBzb21lIHNwYWNlIGZvciBjb3VudGVyIGF0IHJpZ2h0IHNpZGVcclxuICB9XHJcblxyXG4gIC5tZnAtaW1hZ2UtaG9sZGVyIHtcclxuICAgIC5tZnAtY29udGVudCB7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZnAtZ2FsbGVyeSB7XHJcbiAgICAubWZwLWltYWdlLWhvbGRlciB7XHJcbiAgICAgIC5tZnAtZmlndXJlIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkbWZwLWluY2x1ZGUtbW9iaWxlLWxheW91dC1mb3ItaW1hZ2Uge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSksIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDMwMHB4KSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBSZW1vdmUgYWxsIHBhZGRpbmdzIGFyb3VuZCB0aGUgaW1hZ2Ugb24gc21hbGwgc2NyZWVuXHJcbiAgICAgICAqL1xyXG4gICAgICAubWZwLWltZy1tb2JpbGUge1xyXG4gICAgICAgIC5tZnAtaW1hZ2UtaG9sZGVyIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAmLm1mcC1pbWcge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubWZwLWZpZ3VyZSB7XHJcbiAgICAgICAgICAvLyBUaGUgc2hhZG93IGJlaGluZCB0aGUgaW1hZ2VcclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHNtYWxsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubWZwLWJvdHRvbS1iYXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG4gICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgICAgcGFkZGluZzogM3B4IDVweDtcclxuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAmOmVtcHR5IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLm1mcC1jb3VudGVyIHtcclxuICAgICAgICAgIHJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICB0b3A6IDNweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLm1mcC1jbG9zZSB7XHJcbiAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XHJcbiAgICAgICAgICAvL2JhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gU2NhbGUgbmF2aWdhdGlvbiBhcnJvd3MgYW5kIHJlZHVjZSBwYWRkaW5nIGZyb20gc2lkZXNcclxuLy9AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5MDBweCkge1xyXG4vLyAgLm1mcC1hcnJvdyB7XHJcbi8vICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcclxuLy8gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcclxuLy8gIH1cclxuLy8gIC5tZnAtYXJyb3ctbGVmdCB7XHJcbi8vICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMDtcclxuLy8gICAgdHJhbnNmb3JtLW9yaWdpbjogMDtcclxuLy8gIH1cclxuLy8gIC5tZnAtYXJyb3ctcmlnaHQge1xyXG4vLyAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCU7XHJcbi8vICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCU7XHJcbi8vICB9XHJcbi8vICAubWZwLWNvbnRhaW5lciB7XHJcbi8vICAgIHBhZGRpbmctbGVmdDogJG1mcC1wb3B1cC1wYWRkaW5nLWxlZnQtbW9iaWxlO1xyXG4vLyAgICBwYWRkaW5nLXJpZ2h0OiAkbWZwLXBvcHVwLXBhZGRpbmctbGVmdC1tb2JpbGU7XHJcbi8vICB9XHJcbi8vfVxyXG5cclxuLy8gSUU3IHN1cHBvcnRcclxuLy8gU3R5bGVzIHRoYXQgbWFrZSBwb3B1cCBsb29rIG5pY2llciBpbiBvbGQgSUVcclxuQGlmICRtZnAtSUU3c3VwcG9ydCB7XHJcbiAgLm1mcC1pZTcge1xyXG4gICAgLm1mcC1pbWcge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gICAgLm1mcC1ib3R0b20tYmFyIHtcclxuICAgICAgd2lkdGg6IDYwMHB4O1xyXG4gICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMzAwcHg7XHJcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgIH1cclxuICAgIC5tZnAtY29udGFpbmVyIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICAgIC5tZnAtY29udGVudCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA0NHB4O1xyXG4gICAgfVxyXG4gICAgLm1mcC1jbG9zZSB7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIubWZwLXdyYXAge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbn1cclxuXHJcbi5tZnAtcG9wdXAge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBwYWRkaW5nOiA0MHB4O1xyXG5cclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDQ1MHB4O1xyXG5cclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcblxyXG4gIC5tZnAtY2xvc2Uge1xyXG4gICAgdG9wOiAxMHB4O1xyXG4gICAgcmlnaHQ6IDEwcHg7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcbiAgICBwYWRkaW5nOiA3MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLm1mcC1mb3JtLXBvcHVwIHtcclxuICBAZXh0ZW5kIC5tZnAtcG9wdXA7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgLmNzc2ZpbHRlcnMgJiB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICB9XHJcbn1cclxuXHJcbi5tZnAtZm9ybS13aWRlLXBvcHVwIHtcclxuICBAZXh0ZW5kIC5tZnAtZm9ybS1wb3B1cDtcclxuICBtYXgtd2lkdGg6IDgzMHB4O1xyXG59XHJcblxyXG4vKiBvdmVybGF5IGF0IHN0YXJ0ICovXHJcbi5tZnAtYmcge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIG9wYWNpdHk6IDA7XHJcblxyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2Utb3V0O1xyXG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2Utb3V0O1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLW91dDtcclxuICAuY3NzZmlsdGVycyAmIHtcclxuICAgIGJhY2tncm91bmQ6ICRsaWdodGVzdC1ncmF5O1xyXG4gIH1cclxuICAucG9wdXAtLWRhcmsgJiB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xyXG4gIH1cclxufVxyXG5cclxuLyogb3ZlcmxheSBhbmltYXRlIGluICovXHJcbi5tZnAtYmcubWZwLXJlYWR5IHtcclxuICBvcGFjaXR5OiAwLjc1O1xyXG59XHJcblxyXG4vKiBvdmVybGF5IGFuaW1hdGUgb3V0ICovXHJcbi5tZnAtYmcubWZwLXJlbW92aW5nIHtcclxuICBvcGFjaXR5OiAwO1xyXG59XHJcblxyXG4vKiBjb250ZW50IGF0IHN0YXJ0ICovXHJcbi5tZnAtd3JhcCAubWZwLWNvbnRlbnQge1xyXG4gIG9wYWNpdHk6IDA7XHJcblxyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2Utb3V0O1xyXG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2Utb3V0O1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLW91dDtcclxufVxyXG5cclxuLyogY29udGVudCBhbmltYXRlIGl0ICovXHJcbi5tZnAtd3JhcC5tZnAtcmVhZHkgLm1mcC1jb250ZW50IHtcclxuICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG4vKiBjb250ZW50IGFuaW1hdGUgb3V0ICovXHJcbi5tZnAtd3JhcC5tZnAtcmVtb3ZpbmcgLm1mcC1jb250ZW50IHtcclxuICBvcGFjaXR5OiAwO1xyXG59IiwiXHJcbm5hdi5wcmltYXJ5IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIG1hcmdpbjogNThweCAoLSRjb250ZW50LW1hcmdpbikgMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1oZWFkZXI7XHJcblxyXG4gIEBleHRlbmQgJWRpdmlkZXItc2hhZG93LWJlZm9yZTtcclxuXHJcbiAgJi5hY3RpdmUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAudGVhc2VyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAuaDIge1xyXG4gICAgICBAZXh0ZW5kIGgyO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgIGgyIHtcclxuICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1tZCk7XHJcbiAgICB9XHJcbiAgICBwIHtcclxuICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1zbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICA+IHVsIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0ZXN0LWdyYXk7XHJcblxyXG4gICAgICAmOmZpcnN0Om50aC1vZi10eXBlKDEpIHtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uYXYtdGl0bGUge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICBwYWRkaW5nOiByaHl0aG0oMikgJGNvbnRlbnQtbWFyZ2luO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIC5pZTggJiB7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDVweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+IGxpIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xyXG5cclxuICAgICAgJi5oYXMtaWNvbiB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1ub3QtaGlkZGVuKCk7XHJcblxyXG4gICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgPiAubmF2LXRpdGxlIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0ZXN0LWdyYXk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYWN0aXZlID4gLm5hdi10aXRsZSxcclxuICAgICAgJi5vdmVyID4gLm5hdi10aXRsZSB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgID4gdWwge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblxyXG4gICAgICAgID4gbGkge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgICAgPiAubmF2LXRpdGxlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG5cclxuLm5hdi1idG4ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDE4cHg7XHJcbiAgcmlnaHQ6ICRjb250ZW50LW1hcmdpbjtcclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtYm9keSAhaW1wb3J0YW50O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG5cclxuICAgIHNwYW46Zmlyc3QtY2hpbGQge1xyXG4gICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgLmljb24ge1xyXG4gICAgICBAZXh0ZW5kIC5pY29uLW5hdmJhcnM7XHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBAZXh0ZW5kICVpY29uLWZvbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmFjdGl2ZSB7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBAZXh0ZW5kIC5pY29uLWNsb3NlO1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIEBleHRlbmQgJWljb24tZm9udDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoMCAkbWQsIHRydWUpIHtcclxuICBuYXYucHJpbWFyeSA+IHVsIHtcclxuXHJcbiAgICA+IGxpIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZSgkaWNvbi1hcnJvdy1kb3duKTtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgcGFkZGluZzogcmh5dGhtKDIpICRjb250ZW50LW1hcmdpbiByaHl0aG0oMikgcmh5dGhtKDEwKTtcclxuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgICB6LWluZGV4OiAyMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm5hdi10aXRsZSB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMiAqICRjb250ZW50LW1hcmdpbjtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtYm9keTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgID4gLm5hdi10aXRsZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgPiBsaS5leHBhbmRlZCB7XHJcblxyXG4gICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZSgkaWNvbi1hcnJvdy11cCk7XHJcblxyXG4gICAgICA+IHVsIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KCRtZCwgdHJ1ZSkge1xyXG5cclxuICBuYXYucHJpbWFyeSB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiA0MHB4IDExMHB4IDAgMTUwcHg7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgID4gdWwge1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICA+IGxpIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgJi5vdmVyIHtcclxuICAgICAgICAgIC5wcmltYXJ5LW5hdi10ZWFzZXIge1xyXG5cclxuICAgICAgICAgICAgLnRlYXNlciB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAgMzAwcHg7XHJcbiAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiByaHl0aG0oMykgcmh5dGhtKDQpIHJoeXRobSgxMSk7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJGJvcmRlci1yYWRpdXMtbWQgMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYS5tb3JlLWxpbmsge1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4IC0gKDIgKiA0ICogNnB4KTtcclxuICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcnM7XHJcbiAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oOSk7XHJcblxyXG4gICAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24tYmVmb3JlKCRpY29uLWFycm93LXJpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgPiBsaSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcblxyXG4gICAgICAgICYgPiAubmF2LXRpdGxlIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xyXG4gICAgICAgICAgcGFkZGluZzogMHB4IDEwcHggMTBweDtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ib2R5O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYub3ZlciA+IC5uYXYtdGl0bGUsXHJcbiAgICAgICAgJi5hY3RpdmUgPiAubmF2LXRpdGxlIHtcclxuICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICB6LWluZGV4OiAxMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5vdmVyID4gLm5hdi10aXRsZSxcclxuICAgICAgICAmLm92ZXIgPiBhLm5hdi10aXRsZSB7XHJcbiAgICAgICAgICAmLFxyXG4gICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJiA+IC5uYXYtdGl0bGU6YWZ0ZXIge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgY29udGVudDogJyAnO1xyXG4gICAgICAgICAgdG9wOiAtM3B4O1xyXG4gICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICB3aWR0aDogMXB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAyOHB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgkY29sb3ItYm9yZGVycywgMCksIHJnYmEoJGNvbG9yLWJvcmRlcnMsIC4xKSAyMCUsICRjb2xvci1ib3JkZXJzIDUwJSwgcmdiYSgkY29sb3ItYm9yZGVycywgLjkpIDgwJSwgcmdiYSgkY29sb3ItYm9yZGVycywgMCkpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCA+IC5uYXYtdGl0bGU6YmVmb3JlIHtcclxuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICRtZW51LXRlYXNlci13aWR0aDogMzAwcHg7XHJcblxyXG4gICAgICAgID4gdWwge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgIHRvcDogMTAwJTtcclxuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgLy93aWR0aDo0MjBweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJGJvcmRlci1yYWRpdXMtbWQgJGJvcmRlci1yYWRpdXMtbWQ7XHJcbiAgICAgICAgICB6LWluZGV4OiAxMDtcclxuXHJcbiAgICAgICAgICAmLm92ZXI6bm90KCcubGFuZycpIHtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMjQwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwICRib3JkZXItcmFkaXVzLW1kO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgID4gbGkge1xyXG5cclxuICAgICAgICAgICAgPiAubmF2LXRpdGxlIHtcclxuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgICAgcGFkZGluZzogcmh5dGhtKDIpIHJoeXRobSgyKTtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgei1pbmRleDogMjA7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1zbSk7XHJcbiAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuYWN0aXZlID4gLm5hdi10aXRsZSB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRib2xkO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA+IC50ZWFzZXIge1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgICAgICAgICB3aWR0aDogJG1lbnUtdGVhc2VyLXdpZHRoO1xyXG4gICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xyXG4gICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgcGFkZGluZzogcmh5dGhtKDMpIHJoeXRobSg0KSByaHl0aG0oMTEpO1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRib3JkZXItcmFkaXVzLW1kIDA7XHJcblxyXG4gICAgICAgICAgICAgIGEubW9yZS1saW5rIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICRtZW51LXRlYXNlci13aWR0aCAtICgyICogNCAqIDZweCk7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWJvcmRlcnM7XHJcbiAgICAgICAgICAgICAgICAvL3RleHQtaW5kZW50OiAtOTk5ZW07XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFkanVzdC1sZWFkaW5nLXRvKDkpO1xyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZSgkaWNvbi1hcnJvdy1yaWdodCk7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLm92ZXIge1xyXG4gICAgICAgICAgICAgID4gLnRlYXNlciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOm50aC1vZi10eXBlKG4rNCkge1xyXG4gICAgICAgICAgPiB1bCB7XHJcblxyXG4gICAgICAgICAgICAmLm92ZXIge1xyXG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkYm9yZGVyLXJhZGl1cy1tZCAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA+IGxpIHtcclxuICAgICAgICAgICAgICAudGVhc2VyIHtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IC0xICogJG1lbnUtdGVhc2VyLXdpZHRoO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDAgJGJvcmRlci1yYWRpdXMtbWQ7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5vdmVyIHtcclxuICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLm5hdi1idG4ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn0iLCJcclxuLnN0YXRlLWluZGljYXRvciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogLTk5OWVtO1xyXG4gIGxlZnQ6IC05OTllbTtcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJ3hzJztcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xyXG4gICAgICBjb250ZW50OiAnc20nO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcclxuICAgICAgY29udGVudDogJ21kJztcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcbiAgICAgIGNvbnRlbnQ6ICdsZyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSIsIi5jb29raWUtZGlzY2xhaW1lciB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHBhZGRpbmc6IDEwcHggMzBweCAxMHB4IDEwcHg7XHJcblx0YmFja2dyb3VuZDogI2ViZWJlYjtcclxuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2ViZWJlYiwgI2RjZGNkYyk7XHJcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1NTU7XHJcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICM3YTdhN2E7XHJcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoIzAwMCwgMC4yKTtcclxuXHRib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgjN2E3YTdhLCAwLjUpO1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgI2Y5ZjlmOTtcclxuXHRjb2xvcjogIzdjN2M3YztcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgjZmZmLCAxKTtcclxuXHRmb250LXNpemU6IDEzcHg7XHJcblx0Zm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuXHRsaW5lLWhlaWdodDogMS4zO1xyXG5cdGE6bGluayxcclxuXHRhOnZpc2l0ZWQge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRjb2xvcjogIzdjN2M3YztcclxuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHR9XHJcblx0LmNsb3NlLWRpc2NsYWltZXIge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0cmlnaHQ6IDEwcHg7XHJcblx0XHRmb250LXdlaWdodDogbGlnaHQ7XHJcblx0XHRmb250LXNpemU6IDIwcHg7XHJcblx0XHRsaW5lLWhlaWdodDogMC44O1xyXG5cdH1cclxufSIsIu+7vy5wb3B1cF9fY2xvc2Uge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRyaWdodDogMC4yNWVtO1xyXG5cdHRvcDogMDtcclxuXHRmb250LXNpemU6IDNlbTtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHR0ZXh0LWFsaWduOiByaWdodDtcclxufVxyXG5cclxuLnBvcHVwX19jb250ZW50LCAucG9wdXBfX292ZXJsYXkge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5wb3B1cF9fY29udGVudCB7XHJcblx0Zm9udDogMXJlbSBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdHRvcDogNTAlO1xyXG5cdGxlZnQ6IDUwJTtcclxuICAgIG1heC13aWR0aDogNzUwcHg7XHJcbiAgICB3aWR0aDogNjAlO1xyXG4gICAgcGFkZGluZzogMmVtIDRlbSAxZW0gMmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuXHRib3JkZXItcmFkaXVzOiAxcmVtO1xyXG5cdGJhY2tncm91bmQ6ICNmZmY7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcblx0ei1pbmRleDogMTA0NTtcclxufVxyXG5cclxuLnBvcHVwX19saW5rIHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRtYXJnaW46IDFlbSAwO1xyXG59XHJcblxyXG4ucG9wdXBfX292ZXJsYXkge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHR0b3A6IDA7XHJcblx0cmlnaHQ6IDA7XHJcblx0Ym90dG9tOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuNik7XHJcblx0ei1pbmRleDogMTA0NDtcclxufVxyXG5cclxuLnBvcHVwLS1zdGF0ZSB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGxlZnQ6IC0xMDAwMHB4O1xyXG59XHJcblxyXG4ucG9wdXAtLXN0YXRlOmNoZWNrZWQgKyAucG9wdXBfX292ZXJsYXksXHJcbi5wb3B1cC0tc3RhdGU6Y2hlY2tlZCArIC5wb3B1cF9fb3ZlcmxheSArIC5wb3B1cF9fY29udGVudCB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcbn1cclxuIiwiJHBhZGRpbmd0b3A6IDYwcHg7XHJcbiRwYWRkaW5nYm90dG9tOiA3NXB4O1xyXG4kaW5wdXRkZWZhdWx0OiAzNHB4O1xyXG4kZGVmYXVsdGNpcmNsZTogMTRweDtcclxuJGNpcmNsZXBvc2l0aW9uOiAkaW5wdXRkZWZhdWx0LzIgLSAkZGVmYXVsdGNpcmNsZS8yO1xyXG4kd2l0aG51bWJlcnM6IDYwcHg7XHJcbiRsYWJlbGJvdHRvbTogNTBweDtcclxuJHBhZGRpbmctc3BhbjogMjBweDtcclxuLy9uZWVkIGl0IHRvIGNhbGN1bGF0ZSB0aGUgcG9zaXRpb24gZm9yIHRpcFxyXG4kcmFkaXVzOiA3NTtcclxuJGNpcmNsZXJhZGl1czogJHJhZGl1cyArICU7XHJcbiRib3JkZXJ3aWR0aDogMnB4O1xyXG4kc3RlcGJvdHRvbTogMTAwcHg7XHJcbiRkaXNhYmxlZC1jb2xvcjogI2RjZGNkYztcclxuJGFycm93dzogMzVweDtcclxuJGJvcmRlcmFycm93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XHJcblxyXG5AbWl4aW4gYm9yZGVycmFkaXVzKCAkcmFkaXVzOiA1MCUpIHtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiB3aWR0aGNhbGMoJHdpZHRoOiAkY2lyY2xlcmFkaXVzLCAkYm9yZGVyOiAkYm9yZGVyd2lkdGggKSB7XHJcbiAgICAgd2lkdGg6ICR3aWR0aDtcclxuICAgICB3aWR0aDogY2FsYygjeyR3aWR0aH0gKyAjeyRib3JkZXJ9KjIpO1xyXG4gICAgIHdpZHRoOiAtbW96LWNhbGMoI3skd2lkdGh9ICsgI3skYm9yZGVyfSoyKTtcclxuICAgICB3aWR0aDogLXdlYmtpdC1jYWxjKCN7JHdpZHRofSArICN7JGJvcmRlcn0qMik7XHJcbn1cclxuXHJcbkBtaXhpbiBzdXJ2ZXlidXR0b25zKCRpc1ByZXZCYWNrIDogdHJ1ZSkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXN1cnZleTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIG1pbi13aWR0aDogMTcwcHg7XHJcbiAgICBjb2xvcjogd2hpdGUhaW1wb3J0YW50O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIG1heC13aWR0aDogNDUlO1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIEBpbmNsdWRlIGJvcmRlcnJhZGl1cygyNXB4KTtcclxuICAgIGZvbnQtc2l6ZTogMTVweDsgIFxyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBtYXJnaW46IDAgMTBweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBmb250LWZhbWlseTogJ0NvbG9wbGFzdE1lZGl1bSchaW1wb3J0YW50O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDhkYTI7XHJcbiAgICB9XHJcbiAgICAmLmRpc2FibGVkIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XHJcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgfVxyXG4gICAgQGlmICRpc1ByZXZCYWNrID09IGZhbHNlIHtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgQGlmICRpc1ByZXZCYWNrID09IHRydWUge1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggKCRhcnJvd3cgKyA1KSAxMHB4IDIwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUhaW1wb3J0YW50O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgd2lkdGg6ICRhcnJvd3c7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYm9yZGVyYXJyb3c7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYucHJldiB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAoJGFycm93dyArIDUpO1xyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYm9yZGVyYXJyb3c7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiNwcm9ncmVzcy1iYXIge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGhlaWdodDogNXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2I1YjViNTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbWFyZ2luLXRvcDogMCFpbXBvcnRhbnQ7XHJcblxyXG4gICAgPiBzcGFuIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICMwMGIwY2E7IC8qIE9sZCBicm93c2VycyAqL1xyXG4gICAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICMwMGIwY2EgMSUsICM3OGJlMjAgMTAwJSk7IC8qIEZGMy42LTE1ICovXHJcbiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzAwYjBjYSAxJSwjNzhiZTIwIDEwMCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwYjBjYSAxJSwjNzhiZTIwIDEwMCUpOyAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cclxuICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzAwYjBjYScsIGVuZENvbG9yc3RyPScjNzhiZTIwJyxHcmFkaWVudFR5cGU9MSApO1xyXG4gICAgfVxyXG59XHJcblxyXG4jY2hlY2tib3gtb3ZlcmxheSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgei1pbmRleDogNTtcclxufVxyXG5cclxuaW5wdXRbbmFtZT1cImxhc3RXZWVrUGFzc2luZ1VyaW5lRXhwXCJdIHtcclxuICAgICYgKyBsYWJlbCB7XHJcbiAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgei1pbmRleDogMztcclxuICAgIH1cclxuICAgICZbdmFsdWU9XCJJQ0V4cFVyaW5lTm9Jc3N1ZXNcIl0sICZbdmFsdWU9XCJJQ0V4cFVyaW5lT3RoZXJJc3N1ZXNcIl0ge1xyXG4gICAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgei1pbmRleDogMTA7XHJcbiAgICAgICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmJ0bnMtYmFyIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiA0MHB4IDAgJHN0ZXBib3R0b207XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgIC5zdXJ2ZXktaGVhZGVyICYge1xyXG4gICAgICAgcGFkZGluZzogNzBweCAwICRzdGVwYm90dG9tO1xyXG4gICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgIH1cclxuICAgQGluY2x1ZGUgYnJlYWtwb2ludCgwICRzbSwgdHJ1ZSkge1xyXG4gICAgICAgcGFkZGluZzogNDBweCAwICRzdGVwYm90dG9tLzI7XHJcbiAgICAgIC5zdXJ2ZXktaGVhZGVyICYge1xyXG4gICAgICAgICBwYWRkaW5nOiAzMHB4IDAgJHN0ZXBib3R0b20vMjtcclxuICAgICAgfVxyXG4gICAgID4gKiB7bWFyZ2luOiAwIDJweCFpbXBvcnRhbnQ7IG1pbi13aWR0aDogMTQwcHghaW1wb3J0YW50O31cclxuICAgfVxyXG4gICA+IGEge1xyXG4gICAgICAjaWN0b29sc3VydmV5ICYge1xyXG4gICAgICAgICAgIEBpbmNsdWRlIHN1cnZleWJ1dHRvbnM7XHJcbiAgICAgICAgICAgJjo6YWZ0ZXIsICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICBcImNjLWljb25zXCIgIWltcG9ydGFudDtcclxuICAgICAgICAgICB9XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgJiNwcmV2LXN0ZXAge1xyXG4gICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICB9XHJcbiAgIH1cclxuICAgKlt0eXBlPVwic3VibWl0XCJdIHtcclxuICAgICAgIEBpbmNsdWRlIHN1cnZleWJ1dHRvbnMoZmFsc2UpO1xyXG4gICB9XHJcbiAgICNzdXJ2ZXktc3VibWl0IHtcclxuICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgIH1cclxufVxyXG5cclxuLmljLXRvb2wtc3VydmV5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICpbY2xhc3NePSBcIndpZHRoLVwiXSB7XHJcbiAgICAgICAgLy9vdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPiAuaW5wdXQtdGV4dCwgID4gLmlucHV0LXRleHRhcmVhIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgICAgICB9ICAgICAgICBcclxuICAgIH1cclxuICAgIGgyICsgcCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgIH1cclxuICAgIGgxLnBhZ2UtaGVhZGluZyA+IHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICY6ZW1wdHkge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb250ZW50LWJsb2NrIHAge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICAgICNpYy10b29sLXN1cnZleS5mb3JtLXBhZ2Uge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcbiAgICAmICB+ICNwYWdlLWZvb3RlciB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMCAkc20sIHRydWUpIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcclxuICAgIH1cclxuICAgIGEsIC50aXAgZW0sIGgxLCBoMiwgaDMge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itc3VydmV5O1xyXG4gICAgfVxyXG4gICAgYSwgbGFiZWwge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuICAgIC5tYWluLWNvbnRlbnQgJiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xyXG4gICAgfVxyXG4gICAgLmhpZGRlbiwgKltjbGFzc149XCJzdGVwXCJdOm5vdChbZGF0YS1zdGVwPVwiMTBcIl0pIGlucHV0IHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgKltkYXRhLXN0ZXA9XCIxMFwiXSwgLnRoYW5reW91cGFnZSB7XHJcbiAgICAgICAgLmJ0bnMtYmFyIHtkaXNwbGF5OiBibG9jazsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmctdG9wOiAyMHB4O31cclxuICAgICAgICAuaW5wdXQtc2VsZWN0IHtcclxuICAgICAgICAgICAgPiBkaXYge1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDU4cHg7XHJcbiAgICAgICAgICAgICAgICA+IGRpdiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogNThweDtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmlucHV0LWVycm9yIC5pY29uIHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZm9ybS10ZXJtcyB7XHJcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmlucHV0LXRleHRhcmVhIHRleHRhcmVhIHtcclxuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyBcclxuICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgICAgICBAaW5jbHVkZSBib3JkZXJyYWRpdXMoMTBweCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlucHV0IHtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IFxyXG4gICAgICAgICAgJlt0eXBlPVwidGV4dFwiXSwgJlt0eXBlPVwiZW1haWxcIl0ge1xyXG4gICAgICAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVycmFkaXVzKDEwcHgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgLmlucHV0LXByZWZpeCAucHJlZml4IHtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMjBweCAxMXB4O1xyXG4gICAgICAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDEwcHg7XHJcbiAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4IDAgMCAxMHB4O1xyXG4gICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDEwcHg7XHJcbiAgICAgICAgICAgJiArIGxhYmVsIGlucHV0IHtcclxuICAgICAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xyXG4gICAgICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuaW5wdXQtdGV4dCAge1xyXG4gICAgICAgICAgIC5sYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAyMXB4O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgJi5oYXMtdmFsdWUsICYuZm9jdXMge1xyXG4gICAgICAgICAgICAgICAubGFiZWwge3RvcDogMnB4O31cclxuICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGZvcm0ge1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zdXJ2ZXktaGVhZGVyIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBoMSB7XHJcbiAgICAgICAgaW1nIHtkaXNwbGF5OiBub25lO31cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDAgJHNtLCB0cnVlKSB7XHJcbiAgICAgICAgICAgID4gKiwgaW1nIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICB3aWR0aDogMTIuNSU7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMiU7XHJcbiAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3NSU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuaW50cm8ge1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNTBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDIwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDAgJHNtLCB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYgKyAqIHtcclxuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBsYWJlbDpub3QoLmN1c3RvbS1zdHlsZSkge1xyXG4gICAgICAgIEBpbmNsdWRlIHN1cnZleWJ1dHRvbnMoZmFsc2UpO1xyXG4gICAgfSAgICAgICAgICAgIFxyXG59XHJcblxyXG4qW2NsYXNzXj0naXRlbXMtJ10ge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAmLndpdGgtdGV4dCB7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBtYXJnaW46IDEwcHggLTRweCAxMHB4IDA7XHJcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJGNpcmNsZXJhZGl1cztcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJvcmRlcndpZHRoIHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXJyYWRpdXM7ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB3aWR0aGNhbGM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgIEBpbmNsdWRlIHdpZHRoY2FsYztcclxuICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXN1cnZleTtcclxuICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgdG9wOiA1MCU7ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmhvdmVyLCAmLmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1zdXJ2ZXk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMCB7XHJcbiAgICAgICAgIGxhYmVsW2ZvciQ9XCItI3skaX1cIl06OmFmdGVyIHtcclxuICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JGl9XCI7XHJcbiAgICAgICAgIH0gICAgICAgIFxyXG4gICAgICAgICAgaW5wdXRbaWQkPVwiLSN7JGl9XCJdOmNoZWNrZWQge1xyXG4gICAgICAgICAgICAgICAgICAmIH4gbGFiZWxbZm9yJD1cIi0jeyRpfVwiXXtcclxuICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1zdXJ2ZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc3VydmV5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge2NvbG9yOiB3aGl0ZTt9XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJjpub3QoLndpdGgtdGV4dCk6bm90KC53aXRoLWltYWdlKSB7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgID4gc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDg1JTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyMHB4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIsICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXJyYWRpdXM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkaW5wdXRkZWZhdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGlucHV0ZGVmYXVsdDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICRib3JkZXJ3aWR0aCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yOyAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIH0gIFxyXG4gICAgICAgICAgICAgICAmOmhvdmVyOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1zdXJ2ZXk7XHJcbiAgICAgICAgICAgICAgIH0gICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogJGNpcmNsZXBvc2l0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSAkZGVmYXVsdGNpcmNsZS8yO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGRlZmF1bHRjaXJjbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRkZWZhdWx0Y2lyY2xlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zdXJ2ZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgwICRzbSwgdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgICAgICAgICA+IHNwYW4ge3BhZGRpbmctdG9wOiAwOyBwYWRkaW5nLXRvcDogNXB4OyB9XHJcbiAgICAgICAgICAgICAgICAgICAgPiBzcGFuLCAmOjpiZWZvcmUgeyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxMXB4IDAgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAkY2lyY2xlcG9zaXRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xyXG4gICAgICAgICBpbnB1dFtpZCQ9XCItI3skaX1cIl06Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICAgICAgICYgfiBsYWJlbFtmb3IkPVwiLSN7JGl9XCJdOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi53aXRoLWltYWdlIHtcclxuICAgICAgICAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcclxuICAgICAgICAgICAgIC5pbWctaG9sZGVyOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgIGJvcmRlcjogJGJvcmRlcndpZHRoIHNvbGlkICRjb2xvci1zdXJ2ZXk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgIH1cclxuICAgIH1cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICBtYXJnaW4gOiAwIC00cHggMCAwO1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGxhYmVsYm90dG9tO1xyXG4gICAgICAgIFxyXG4gICAgICAgID4gc3Bhbjpub3QoLmltZy1ob2xkZXIpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZy1zcGFuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuaW1nLWhvbGRlciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgd2lkdGg6IDE1MHB4O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBjbGVhcjogYm90aDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgcGFkZGluZzogJGJvcmRlcndpZHRoLzI7XHJcbiAgICAgICAgICAgICY6OmFmdGVyLCAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOjpiZWZvcmUgeyAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgIGJvcmRlcnJhZGl1czsgIFxyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbWdiZzsgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogNjtcclxuICAgICAgICAgICAgICAgIC8vYm9yZGVyOiAkYm9yZGVyd2lkdGggc29saWQgJGltZ2JnO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgIGJvcmRlcnJhZGl1cztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHRvcDogNTAlOyBcclxuICAgICAgICAgICAgICAgIC8vQGluY2x1ZGUgIGJvcmRlcnJhZGl1czsgXHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA1OyAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICAgICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYgKyBzcGFuIHsgXHJcbiAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3MCU7XHJcbiAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgwICRzbSwgdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDg1JTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICBlbSwgYSB7ZGlzcGxheTogYmxvY2s7fVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAmLCAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIi4uLlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgwICRzbSwgdHJ1ZSkge1xyXG4gICAgICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRsYWJlbGJvdHRvbSAtIDIwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgJjpob3ZlciAuaW1nLWhvbGRlcjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgIGJvcmRlcjogJGJvcmRlcndpZHRoIHNvbGlkICRjb2xvci1zdXJ2ZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgIH1cclxuICAgICV0aXBsaW5lIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XHJcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG4gICAgLnRpcCB7XHJcbiAgICAgICA+ICoge1xyXG4gICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcclxuICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEwMCUgLSAxODBweCk7XHJcbiAgICAgICAgICAgcGFkZGluZy1yaWdodDogLW1vei1jYWxjKDEwMCUgLSAxODBweCk7XHJcbiAgICAgICAgICAgcGFkZGluZy1yaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxODBweCk7ICAgICAgICAgICBcclxuICAgICAgIH1cclxuICAgICAgID4gKjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgICAgICAgIGNvbG9yOiAkY29sb3Itc3VydmV5O1xyXG4gICAgICAgfVxyXG4gICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjo6YWZ0ZXIsICY6OmJlZm9yZSAge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICV0aXBsaW5lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgZW0ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpub3QoLmVuZCkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSwgdHJ1ZSkgeyBcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi5lbmQge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgICAgICAgICA+ICogIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMTAwJSAtIDE4MHB4KTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLW1vei1jYWxjKDEwMCUgLSAxODBweCk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTgwcHgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMCAkc20sIHRydWUpIHsgXHJcbiAgICAgICAgICAgICAgICA+ICoge3BhZGRpbmctcmlnaHQ6IDE1cHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy9pbnB1dHMgZ3JpZFxyXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIDEwIHtcclxuICAuaXRlbXMtI3skaX0geyAgICBcclxuICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7IFxyXG4gICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgd2lkdGg6IDEwMC8kaSArICU7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICAgQGlmICRpID09IDgge1xyXG4gICAgICAgICAgICYud2l0aC1pbWFnZSBsYWJlbCwgJi53aXRoLWltZyBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLzQgKyAlO1xyXG4gICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgfVxyXG4gICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgwICRzbSwgdHJ1ZSkgeyBcclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgIEBpZiAkaSA9PSAxMCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAvNSArICU7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgQGlmICRpID09IDUge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICYud2l0aC10ZXh0IHtcclxuICAgICAgICAgIC50aXAge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSwgdHJ1ZSkgeyAgXHJcbiAgICAgICAgICAgICAgICY6OmFmdGVyLCAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICgoMTAwLyRpICogJHJhZGl1cy8xMDApLzIpICsgJTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAmLmVuZDo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogKCgxMDAvJGkgKiAkcmFkaXVzLzEwMCkvMikgKyAoMTAwLyRpICogKCgxMDAtJHJhZGl1cykvMTAwKSkgKyAlO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMCAkc20sIHRydWUpIHsgXHJcbiAgICAgICAgICAgICAgQGlmICRpICE9IDEwIHsgXHJcbiAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIsICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICgoMTAwLzIgKiAkcmFkaXVzLzEwMCkvMikgKyAlO1xyXG4gICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAmLmVuZDo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICgoMTAwLzIgKiAkcmFkaXVzLzEwMCkvMikgKyAoMTAwLzIgKiAoKDEwMC0kcmFkaXVzKS8xMDApKSArICU7XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAaWYgJGkgPT0gMTAgIHsgXHJcbiAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIsICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICgoMTAwLzUgKiAkcmFkaXVzLzEwMCkvMikgKyAlO1xyXG4gICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAmLmVuZDo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICgoMTAwLzUgKiAkcmFkaXVzLzEwMCkvMikgKyAoMTAwLzUgKiAoKDEwMC0kcmFkaXVzKS8xMDApKSArICU7XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgfVxyXG59XHJcblxyXG4uc3RlcCB7IFxyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgICBcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgJi1pbnRybyB7XHJcbiAgICAgICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZ3RvcDtcclxuICAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgICAgaXRhbGljLCBpIHtmb250LXN0eWxlOiBpdGFsaWM7fVxyXG4gICAgICAgIC5jdXN0b20tc3R5bGUge1xyXG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Itc3VydmV5O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjVweDsgICAgICBcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICAgJjpub3QoLnN1cnZleS1oZWFkZXIpIHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmdib3R0b207XHJcbiAgICAgICAgICAgID4gKiB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzAlO1xyXG4gICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPiBoMiB7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogOTAlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAqIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAjaWN0b29sc3VydmV5ICYgaDEge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDQ5cHg7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgwICRzbSwgdHJ1ZSkgeyBcclxuICAgICAgICAgICAgICAgICBmb250LXNpemU6IDM3cHg7XHJcbiAgICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICNpY3Rvb2xzdXJ2ZXkgJiBoMiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzVweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMCAkc20sIHRydWUpIHsgXHJcbiAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xyXG4gICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICBwYWRkaW5nLXRvcDogMjVweDtcclxuICAgICAgICB9XHJcbiAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KDAgJHNtLCB0cnVlKSB7IFxyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHBhZGRpbmd0b3AvMjsgIFxyXG4gICAgICAgICAgICAmOm5vdCguc3VydmV5LWhlYWRlcikgeyAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZ2JvdHRvbSAtIDM1O1xyXG5cclxuICAgICAgICAgICB9ICBcclxuICAgICAgICAgICAgaDEsIGgyIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgICAgICAgfSBcclxuIFxyXG4gICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4gI3N0YXJ0LXN1cnZleTpjaGVja2VkIHtcclxuICAgICAgICAmIH4gI2ljLXRvb2wtc3VydmV5IHtcclxuICAgICAgICAgICAgIC5zdGVwW2RhdGEtc3RlcD1cIjFcIl0sIC5idG5zLWJhciB7XHJcbiAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgfSBcclxuICAgICAgICAmICsgLnN1cnZleS1oZWFkZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxufVxyXG4gI3BvcHVwaW5mby13aW5kb3cge1xyXG4gICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICB6LWluZGV4OiA5MDAwMDtcclxuICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuOTUpO1xyXG4gICAgICo6bm90KGgyKSB7XHJcbiAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1ib2R5O1xyXG4gICAgIH1cclxuICAgICAmLCAucG9wdXAtbGFiZWwge1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7ICAgIFxyXG4gICAgIH1cclxuICAgICAucG9wdXAtbGFiZWwge1xyXG4gICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgIGNvbG9yOiAgJGNvbG9yLXRleHQtYm9keTtcclxuICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgZm9udC1zaXplOiAzNXB4O1xyXG4gICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICB6LWluZGV4OiAzMDtcclxuICAgICAgICAgICB9XHJcbiAgICAgfVxyXG4gICAgIC5wb3B1cGluZm8tY29udGVudCB7XHJcbiAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICBtYXgtd2lkdGg6IDk2MHB4O1xyXG4gICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgIHBhZGRpbmc6IDYwcHggMzBweCAzMHB4OyAgXHJcbiAgICAgICAgIHotaW5kZXg6IDIwO1xyXG4gICAgICAgICAuc3RlcC1pbnRybyAmIHtcclxuICAgICAgICAgICAgIHAsIGxpIHtcclxuICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xyXG4gICAgICAgICAgICAgfVxyXG4gICAgICAgICB9ICAgICBcclxuICAgICB9XHJcbiAjaW5mb3JtYXRpb24tcG9wdXA6Y2hlY2tlZCB+ICYge1xyXG4gICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgIH1cclxuIH0iLCIvKiBnZW5lcmF0ZWQgd2l0aCBncnVudC1zYXNzLWdsb2JiaW5nICovXHJcbkBpbXBvcnQgXCIuLi9wYWdlcy9hcnRpY2xlX2Z1bGxcIjtcclxuQGltcG9ydCBcIi4uL3BhZ2VzL2NvbnRhY3RfcGFnZVwiO1xyXG5AaW1wb3J0IFwiLi4vcGFnZXMvZm9ybV9xdWFsaXR5LW9mLWxpZmVcIjtcclxuQGltcG9ydCBcIi4uL3BhZ2VzL2Zyb250cGFnZVwiO1xyXG5AaW1wb3J0IFwiLi4vcGFnZXMvcHJvZmlsZV9mb3JtXCI7XHJcbkBpbXBvcnQgXCIuLi9wYWdlcy9zZWN0aW9uXCI7XHJcbkBpbXBvcnQgXCIuLi9wYWdlcy9zb2x1dGlvbnNcIjtcclxuIiwiLmFydGljbGUtZnVsbCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHJcbiAgLm1haW4tY29udGVudCB7XHJcbiAgICBAZXh0ZW5kIC5jb250ZW50LXdyYXBwZXI7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgIGgxIHtcclxuICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDMpO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gID4gKjpudGgtY2hpbGQobisyKSB7XHJcbiAgICBtYXJnaW4tdG9wOiByaHl0aG0oNyk7XHJcbiAgfVxyXG59XHJcblxyXG4uYXJ0aWNsZS1oZWFkZXIge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtaGVhZGVyO1xyXG4gIC8vcGFkZGluZy10b3A6IHJoeXRobSgyKTtcclxuICAvL3BhZGRpbmctYm90dG9tOiByaHl0aG0oNCk7XHJcblxyXG4gIFtlZGl0bW9kZV0gJiB7XHJcbiAgICAgIGhlaWdodDogNTAwcHg7XHJcbiAgfVxyXG5cclxuICAuY29udGVudC1ibG9jayB7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuXHJcbiAgICAuZWxtLWltYWdlIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0kY29udGVudC1tYXJnaW47XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLSRjb250ZW50LW1hcmdpbjtcclxuICAgICAgaW1nIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIC5lbG0tY29udGVudCB7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcbiAgICAgICAgaDEge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14eHhsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcCB7XHJcbiAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1sZyk7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuLnR5cGUtYXJ0aWNsZSB7XHJcblxyXG4gIC5tYWluLWNvbnRlbnQge1xyXG4gICAgbWF4LXdpZHRoOiA2MzZweCArICgyICogMzBweCk7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuXHJcbiAgICBAaW5jbHVkZSBsYXlvdXQoNiA2LCAkZ3V0dGVyOiAxLjI1KSB7XHJcblxyXG4gICAgICAuY29udGVudC1ibG9jayB7XHJcblxyXG4gICAgICAgIC5lbG0taW1hZ2Uge1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDQpO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHJcbiAgICAgICAgICAmLmZ1bGwtd2lkdGgge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLXNwYW4oMiwgMSk7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLmlubGluZS1sZWZ0IHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmh5dGhtKDMpO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJoeXRobSgxKTtcclxuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xyXG4gICAgICAgICAgICAgIGNsZWFyOiBsZWZ0O1xyXG4gICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmllOCAmIHtcclxuICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuaW5saW5lLXJpZ2h0IHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByaHl0aG0oMyk7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDEpO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcbiAgICAgICAgICAgICAgY2xlYXI6IHJpZ2h0O1xyXG4gICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5pZTggJiB7XHJcbiAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICBjbGVhcjogbm9uZTtcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5jc3N0cmFuc2l0aW9ucyAudHlwZS1hcnRpY2xlIHtcclxuXHJcbn1cclxuXHJcbi50eXBlLWFydGljbGUge1xyXG5cclxuICAuYXJ0aWNsZS1oZWFkZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG5cclxuICAgIC5lbG0tY29udGVudCB7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIG1hcmdpbi10b3A6IHJoeXRobSg0KTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogcmh5dGhtKDIpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDAgJHNtLCB0cnVlKSB7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSwgdHJ1ZSkge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIC5jb250ZW50LXdyYXBwZXIge1xyXG4gICAgICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgfVxyXG4gICAgICAuY29udGVudC1ibG9jayB7XHJcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICBtYXgtd2lkdGg6ICRsZyArICgyICogJGNvbnRlbnQtbWFyZ2luLWVtKTtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAwICRjb250ZW50LW1hcmdpbjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZWxtLWltYWdlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcclxuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG1pbi13aWR0aDtcclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgbGVmdDogNzUlO1xyXG4gICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNzUlLCAtNTAlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgei1pbmRleDogNTtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICBtYXgtd2lkdGg6IDQ1MHB4O1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBjb2xvciwgdGV4dC1zaGFkb3c7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcclxuXHJcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAuMiksIDAgMCAyNXB4IHJnYmEoMCwgMCwgMCwgLjMpO1xyXG5cclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuXHJcbiAgICAgICAgaDEsXHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuZWxtLWNvbnRlbnQgPiBoMSArIHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICAgIC5lbG0tY29udGVudCA+IDpudGgtY2hpbGQobisyKSB7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5lbG0tY29udGVudCxcclxuICAgICAgLmVsbS1jb250ZW50ID4gOm50aC1jaGlsZChuKzIpLFxyXG4gICAgICAuZWxtLWltYWdlLFxyXG4gICAgICAmOmJlZm9yZSxcclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjcsIDAsIDAuMywgMSk7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpiZWZvcmUsXHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGNvbnRlbnQ6ICcgJztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XHJcbiAgICAgICAgYm9yZGVyOiAwcHggc29saWQgJGNvbG9yLWJhY2tncm91bmQ7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLXdpZHRoO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICBsZWZ0OiAtMTAwJTtcclxuICAgICAgICB3aWR0aDogNTQlO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBib2R5Om5vdCguc2Nyb2xsLXRvcCkgJiB7XHJcblxyXG4gICAgICAgICY6YmVmb3JlLFxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XHJcbiAgICAgICAgICBib3JkZXI6IHJoeXRobSg4KSBzb2xpZCAkY29sb3ItYmFja2dyb3VuZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgIHdpZHRoOiA1NCU7XHJcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmFja2dyb3VuZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5lbG0tY29udGVudCB7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcclxuICAgICAgICAgIHRleHQtc2hhZG93OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmVsbS1jb250ZW50ID4gaDEgKyBzcGFuLFxyXG4gICAgICAgIC5lbG0tY29udGVudCA+IDpudGgtY2hpbGQobisyKSB7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcclxuICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmVsbS1pbWFnZSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnR5cGUtcHJvZHVjdCB7XHJcbiAgLmFydGljbGUtaGVhZGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgLnByb2R1Y3QtYmFja2dyb3VuZCB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBib3R0b206IDM1JTtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4gICAgfVxyXG5cclxuICAgIC5jb250ZW50LXdyYXBwZXIge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAtJGNvbnRlbnQtbWFyZ2luO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC0kY29udGVudC1tYXJnaW47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudC1ibG9jayB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcbiAgICAgICAgbGVmdDogNSU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDgpO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtJGNvbnRlbnQtbWFyZ2luO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLSRjb250ZW50LW1hcmdpbjtcclxuICAgICAgfVxyXG4gICAgICAuZWxtLWltYWdlIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICBsZWZ0OiA1JTtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgcGFkZGluZy10b3A6IHJoeXRobSgxNSk7XHJcbiAgICAgICAgLmllOCAmIHtcclxuICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xyXG4gICAgICAgICAgbGVmdDogMTUlO1xyXG4gICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiByaHl0aG0oMik7XHJcbiAgICAgICAgbGVmdDogJGNvbnRlbnQtbWFyZ2luO1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIG1heC13aWR0aDogNjQwcHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMXMgZWFzZTtcclxuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KSwgMCAwIDI1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5lbG0tYWN0aW9ucyB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG1hcmdpbjogcmh5dGhtKDQpIDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgQGV4dGVuZCAlYnV0dG9uO1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWhlYWRlcjtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XHJcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KSwgMCAwIDI1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmJhY2tncm91bmQtbGlnaHQge1xyXG4gICAgICAgIC5lbG0tY29udGVudCB7XHJcblxyXG4gICAgICAgICAgY29sb3I6ICNmZmY7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAuYXJ0aWNsZS1oZWFkZXItM2Qge1xyXG4gICAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRsaWdodC1ncmF5IDAlLCAkbGlnaHQtZ3JheSA3MS44MTgxJSwgI2ZmZiA3MS44MTgxJSwgI2ZmZiAxMDAlKSk7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkbGlnaHQtZ3JheSAwJSwgJGxpZ2h0LWdyYXkgNzEuODE4MSUsICNmZmYgNzEuODE4MSUsICNmZmYgMTAwJSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByaHl0aG0oMTApO1xyXG5cclxuICAgIC5jb250ZW50LWJsb2NrIHtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgIC5lbG0taW1hZ2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICB0b3A6IDklO1xyXG4gICAgICB9XHJcbiAgICAgIC5lbG0tYWN0aW9ucyB7XHJcbiAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgIGJvdHRvbTogcmh5dGhtKDIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWFpbi1jb250ZW50IHtcclxuICAgIG1heC13aWR0aDogNjM2cHggKyAoMiAqIDMwcHgpO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICBAaW5jbHVkZSBsYXlvdXQoNiA2LCAkZ3V0dGVyOiAxLjI1KSB7XHJcbiAgICAgIC5jb250ZW50LWJsb2NrIHtcclxuXHJcbiAgICAgICAgLmVsbS1pbWFnZSB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiByaHl0aG0oNCk7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG5cclxuICAgICAgICAgICYuZnVsbC13aWR0aCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtc3BhbigyLCAxKTtcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuaW5saW5lLWxlZnQge1xyXG4gICAgICAgICAgICBjbGVhcjogbGVmdDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJoeXRobSgzKTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDEpO1xyXG5cdCAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xyXG4gICAgICAgICAgICAgIGNsZWFyOiBsZWZ0O1xyXG4gICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmllOCAmIHtcclxuICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuaW5saW5lLXJpZ2h0IHtcclxuICAgICAgICAgICAgY2xlYXI6IHJpZ2h0O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmh5dGhtKDMpO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDEpO1xyXG5cdCAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xyXG4gICAgICAgICAgICAgIGNsZWFyOiByaWdodDtcclxuICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuaWU4ICYge1xyXG4gICAgICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5lbG0tY29udGVudCB7XHJcbiAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgY2xlYXI6IG5vbmU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xyXG4gIC5hcnRpY2xlLWhlYWRlciB7XHJcbiAgICAuZWxtLWltYWdlIHtcclxuICAgICAgbGVmdDogMTAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmJhbm5lciB7XHJcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJhY2tncm91bmQ7XHJcblxyXG4gIC5jb250ZW50LXdyYXBwZXIge1xyXG4gICAgcGFkZGluZy10b3A6IHJoeXRobSg0KTtcclxuICAgIHBhZGRpbmctYm90dG9tOiByaHl0aG0oNSk7XHJcbiAgfVxyXG5cclxuICBoMSB7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXh4bCk7XHJcbiAgfVxyXG5cclxuICAuZWxtLWNvbnRlbnQge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgbWF4LXdpZHRoOiA2MzZweDtcclxuICB9XHJcblxyXG59XHJcblxyXG4ucmVsYXRlZCwgLmFuaW1hdGlvbnMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG4gIC5jb250ZW50LXdyYXBwZXIgPiBoMiB7XHJcbiAgICAgIC8vbWFyZ2luLXRvcDogcmh5dGhtKDEwKTtcclxuICAgICAgLy9tYXJnaW4tYm90dG9tOiAtKHJoeXRobSg2KSk7XHJcbiAgICBtYXJnaW46IHJoeXRobSgzKSAwICgtIHJoeXRobSgyKSkgMDtcclxuICAgIC5pZTggJiB7XHJcbiAgICAgIG1hcmdpbjogMTVweCAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAuY29udGVudC13cmFwcGVyID4gLmZsZXhzbGlkZXIgLnNsaWRlcyA+IGxpIHtcclxuICAgLy8gbWFyZ2luLXRvcDogcmh5dGhtKDgpO1xyXG4gICAvLyBtYXJnaW4tYm90dG9tOiByaHl0aG0oOCk7XHJcbiAgICBtYXJnaW46IHJoeXRobSg0KSAwIHJoeXRobSgyKSAwO1xyXG4gIH1cclxuXHJcbiAgLmNvbnRlbnQtd3JhcHBlciA+IC5mbGV4c2xpZGVyIHtcclxuICAgIG1hcmdpbjogMCAoLTEgKiAkY29udGVudC1tYXJnaW4pO1xyXG5cclxuICAgIC5zbGlkZXMgPiBsaSAuY29udGVudC1ibG9jayB7XHJcbiAgICAgIG1hcmdpbjogMCAkY29udGVudC1tYXJnaW47XHJcbiAgICB9XHJcbiAgfVxyXG4gIC50eXBlLXZpZGVvIHtcclxuICAgICAgLmVsbS1pbWFnZSB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAvL0BpbmNsdWRlIGljb24oJG1lZGlhLXBsYXkpO1xyXG4gICAgICAgICAgQGV4dGVuZCAuaWNvbi1tZWRpYS1wbGF5O1xyXG5cclxuICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlaWNvbi1mb250O1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxZW07XHJcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcbiAgLmZsZXgtZGlyZWN0aW9uLW5hdiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAuZmxleC1jb250cm9sLW5hdiB7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xyXG4gICAgICBib3R0b206IHJoeXRobSgyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcblxyXG4gICAgLmZsZXgtZGlyZWN0aW9uLW5hdiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gICAgLmZsZXgtY29udHJvbC1uYXYge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxheW91dCg2IDYsICRndXR0ZXI6IDYwLzY4KSB7XHJcbiAgICAgIC5jb250ZW50LWJsb2NrIHtcclxuICAgICAgICAuZWxtLWltYWdlIHtcclxuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtc3BhbigxLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtc3BhbigxLCAyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uZmVhdHVyZXMge1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1iYWNrZ3JvdW5kO1xyXG5cclxuICB1bCB7XHJcbiAgICBtYXJnaW46IHJoeXRobSg2KSAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAuaWU4ICYge1xyXG4gICAgICBtYXJnaW46IDMwcHggMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxpIHtcclxuICAgIHBhZGRpbmctbGVmdDogMTAwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICY6bnRoLWNoaWxkKG4rMikge1xyXG4gICAgICBtYXJnaW4tdG9wOiByaHl0aG0oNCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaWNvbiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMTAwcHg7XHJcbiAgICB3aWR0aDogODBweDtcclxuICAgIGhlaWdodDogODBweDtcclxuICAgIGZvbnQtc2l6ZTogODBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kLCB0cnVlKSB7XHJcbiAgICB1bCB7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcclxuICAgIH1cclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgcGFkZGluZy1yaWdodDogZ3V0dGVyLXNwYW4oKTtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgIH1cclxuICAgIC5pY29uIHtcclxuICAgICAgbWFyZ2luLXRvcDogcmh5dGhtKDIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZhY3RzIHtcclxuICBAZXh0ZW5kIC5jb250ZW50LXdyYXBwZXI7XHJcbiAgbWF4LXdpZHRoOiAkeHM7XHJcbiAgLmllOCAmIHtcclxuICAgIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgfVxyXG5cclxuICAuZmxleC1kaXJlY3Rpb24tbmF2IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5mbGV4LWNvbnRyb2wtbmF2IHtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICBib3R0b206IGF1dG87XHJcbiAgICBtYXJnaW46IHJoeXRobSgyKSAwIHJoeXRobSgxMCk7XHJcbiAgICAuaWU4ICYge1xyXG4gICAgICBtYXJnaW46IDVweCAwIDU1cHggMDtcclxuICAgIH1cclxuXHJcbiAgICB1bCB7XHJcbiAgICAgIGNvdW50ZXItcmVzZXQ6IGVsZW1lbnQ7XHJcbiAgICB9XHJcbiAgICBsaSB7XHJcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBlbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5mbGV4LWFjdGl2ZSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICB3aWR0aDogMXB4O1xyXG4gICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgYm90dG9tOiAtMjBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogY291bnRlcihlbGVtZW50KTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtaGVhZGVyO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgICAgICBmb250LXdlaWdodDogJGxpZ2h0O1xyXG4gICAgICAgIGJvdHRvbTogLTY0cHg7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xyXG4gICAgICAgIHdpZHRoOiA0NHB4O1xyXG4gICAgICAgIGhlaWdodDogNDRweDtcclxuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDRweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLTIycHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufSIsIi5jb250YWN0LXBhZ2Uge1xyXG5cclxuICBoMiB7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXh4bCk7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10byg3KTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYm9yZGVycy1saWdodDtcclxuICB9XHJcblxyXG4gIC5jb250YWN0LWluZm8sXHJcbiAgLmNvbnRhY3QtZm9ybSB7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxuICB9XHJcblxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xyXG4gIC5jb250YWN0LXBhZ2Uge1xyXG4gICAgLmNvbnRhY3QtaW5mbyxcclxuICAgIC5jb250YWN0LWZvcm0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgLmNvbnRhY3QtaW5mbyB7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtc3Bhbig1LCAxKVxyXG4gICAgfVxyXG4gICAgLmNvbnRhY3QtZm9ybSB7XHJcbiAgICAgIGgyIHtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDYsIDcpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn0iLCJcclxuLmZvcm0tcXVhbGl0eS1vZi1saWZlIHtcclxuXHJcbiAgLmxhYmVsLWdyb3VwIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xyXG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XHJcbiAgfVxyXG5cclxuICBsYWJlbCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcHJpbWFyeTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG5cclxuICAgICYuY2hlY2tlZCB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcclxuICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWJvZHk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucmVmZXJlbmNlIHtcclxuICAgIG1hcmdpbjogcmh5dGhtKDQpIDA7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXNtKTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XHJcblxyXG4gICAgbGFiZWwge1xyXG4gICAgICAubGFiZWwge1xyXG4gICAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtc20pO1xyXG4gICAgICB9XHJcbiAgICAgIC8qXHJcbiAgICAgIC5sYWJlbCB7XHJcbiAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgLmxhYmVsLXZhbHVlIHtcclxuICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICAgIH1cclxuICAgICAgKi9cclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20pIHtcclxuICAgIGgxLFxyXG4gICAgaDIge1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxuICAgIC5sYWJlbC1ncm91cCB7XHJcblxyXG4gICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJoeXRobSgzKTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogcmh5dGhtKDMpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDYsIDcpO1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuXHJcbiAgICAgIC5sYWJlbCB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICB3aWR0aDogMiU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbiAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1zbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIC5sYWJlbCB7XHJcbiAgICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1tZCk7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgICAubGFiZWwtdmFsdWUge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xyXG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xyXG4gICAgICBwYWRkaW5nOiA4cHggcmh5dGhtKDIpO1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNiwgMSk7XHJcbiAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJGJhc2UtZm9udC1zaXplKTtcclxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWJvZHk7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLW1kO1xyXG4gICAgfVxyXG4gICAgLmNvbXBhY3QtZ3JvdXAge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNiwgNyk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbn0iLCJcclxuIiwiLmZvcm0taGVhZGVyIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xyXG4gIC5pZTggJiB7XHJcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG4gIH1cclxuICAgIGgxIHtcclxuICAgICAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXh4bCk7XHJcblx0ICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcblx0XHQgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS14eHhsKTtcclxuXHQgICAgfVxyXG4gICAgfVxyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbn1cclxuXHJcbi5mb3JtLXBhZ2Uge1xyXG4gIG1hcmdpbi1ib3R0b206IHJoeXRobSg4KTtcclxuXHJcbiAgaDEsXHJcbiAgaDIge1xyXG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWhlYWRlcnM7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLXh4bCk7XHJcbiAgICArIGhyIHtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIH1cclxuICB9XHJcbiAgaDMge1xyXG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWhlYWRlcnM7XHJcbiAgICBAaW5jbHVkZSBhZGp1c3QtZm9udC1zaXplLXRvKCRzaXplLWxnKTtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcbiAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUteGwpO1xyXG4gICAgfVxyXG4gICAgKyBociB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGg0IHtcclxuICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUtbWQpO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20sIHRydWUpIHtcclxuICAgICAgQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygkc2l6ZS1sZyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5lbG0taW1hZ2Uge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmVsbS1jb250ZW50IHtcclxuICAgIG1hcmdpbi1ib3R0b206IHJoeXRobSg1KTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLCB0cnVlKSB7XHJcblxyXG4gICAgLmVsbS1jb250ZW50IHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDYsIDEpO1xyXG4gICAgICAmLmZ1bGwtd2lkdGgge1xyXG4gICAgICAgIEBpbmNsdWRlIGdyaWQtc3BhbigxMiwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5lbG0taW1hZ2Uge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDUsIDgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQsIHRydWUpIHtcclxuXHJcbiAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNSwgMSk7XHJcbiAgICAgICYuZnVsbC13aWR0aCB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1zcGFuKDEyLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmVsbS1pbWFnZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBAaW5jbHVkZSBncmlkLXNwYW4oNiwgNyk7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbi5wYWdlLXNlY3Rpb24ge1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KDAgJG1kLCB0cnVlKSB7XHJcblxyXG4gICAgLmZvcm0tc2lnbnVwLWN0YSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiXHJcbnNlY3Rpb24uc29sdXRpb24tY2F0ZWdvcnkge1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDA7XHJcblxyXG4gIC5lbG0taW1hZ2Uge1xyXG4gICAgaW1nIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KCRzbSwgdHJ1ZSkge1xyXG5cclxuICBib2R5LnBhZ2Utc29sdXRpb25zIHtcclxuICAgID4gKiArICoge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VjdGlvbi5zb2x1dGlvbi1jYXRlZ29yeSB7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICBtaW4taGVpZ2h0OiAzOTVweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyAnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuNSk7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzIGVhc2U7XHJcbiAgICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgfVxyXG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICB9XHJcbiAgICAuZWxtLWltYWdlIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICB9XHJcbiAgICAuZWxtLWNvbnRlbnQge1xyXG4gICAgICBwYWRkaW5nLXRvcDogcmh5dGhtKDgpO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogcmh5dGhtKDgpO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcblxyXG4gICAgICA+ICo6bnRoLWNoaWxkKG4rMikge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIH1cclxuICAgICAgPiBoMSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoMSB7XHJcbiAgICAgIEBpbmNsdWRlIGFkanVzdC1mb250LXNpemUtdG8oJHNpemUteHh4bCk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICYub3ZlciB7XHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIH1cclxuICAgICAgLmVsbS1jb250ZW50ID4gKiB7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7RUFNRTtBQ05GOzs7RUFHRTtBQUVGLEFBQUEsSUFBSSxFQUFFLEFBQUYsSUFBTSxFQUFFLEFBQUYsR0FBSyxFQUFFLEFBQUYsSUFBTSxFQUFFLEFBQUYsTUFBUSxFQUFFLEFBQUYsTUFBUSxFQUFFLEFBQUYsTUFBUTtBQUM3QyxBQUQ2QyxFQUMzQyxFQUFFLEFBQUYsRUFBSSxFeUZMTixBekZLRSxHeUZMQyxBQUFBLFFBQVEsQ0FZVCxPQUFPLENBRUwsR0FBRyxFekZUQyxBQUFGLEVBQUksRUFBRSxBQUFGLEVBQUksRUFBRSxBQUFGLEVBQUksRUFBRSxBQUFGLEVBQUksRUFBRSxBQUFGLENBQUcsRUFBRSxBQUFGLFVBQVksRUFBRSxBQUFGLEdBQUs7QUFDMUMsQUFEMEMsQ0FDekMsRUFBRSxBQUFGLElBQU0sRUFBRSxBQUFGLE9BQVMsRUFBRSxBQUFGLE9BQVMsRUFBRSxBQUFGLEdBQUssRUFBRSxBQUFGLElBQU0sRUFBRSxBQUFGLElBQU07QUFDMUMsQUFEMEMsR0FDdkMsRUFBRSxBQUFGLEdBQUssRUFBRSxBQUFGLEVBQUksRUFBRSxBQUFGLEdBQUssRUFBRSxBQUFGLEdBQUssRUFBRSxBQUFGLEdBQUssRUFBRSxBQUFGLENBQUcsRUFBRSxBQUFGLENBQUcsRUFBRSxBQUFGLElBQU07QUFDdkMsQUFEdUMsS0FDbEMsRUFBRSxBQUFGLE1BQVEsRUFBRSxBQUFGLE1BQVEsRUFBRSxBQUFGLEdBQUssRUFBRSxBQUFGLEdBQUssRUFBRSxBQUFGLEVBQUksRUFBRSxBQUFGLEdB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 */

