/**
 * Foundation for Sites
 * Version 6.7.3
 * https://get.foundation
 * Licensed under MIT Open Source
 */
/* ============================================================= */
/* ============================================================= */
/* ============================================================= */
/* ============================================================= */
/* ============================================================= */
/* Flex-flow is short hand for "flex-direction" & "flex-wrap" */
/* Flex-direction - Column */
/* Flex-direction - Row */
/* Align Items - Stretch */
/* Align Items - Center */
/* ============================================================= */
/* ============================================================= */
/* Clearfix */
/* Revert clearfix */
/* ============================================================= */
/* ============================================================= */
/* ============================================================= */
/* ============================================================= */
/*
https://www.sassmeister.com/gist/7f22e44ace49b5124eec
@include fluid-type(font-size, 320px, 1366px, 14px, 18px);
@include fluid-type(padding-bottom padding-top, 20em, 70em, 2em, 4em);
*/
/* Eric Meyer's CSS Reset */
html, body, div, span, applet, object, iframe,
h1, 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, main {
  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;
}

/* End of Eric Meyer's CSS Reset */
*:focus {
  outline: none;
}

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

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

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

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

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

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

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

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

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

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

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

.block {
  display: block;
}

.left {
  float: left;
}

.right {
  float: right;
}

.visible {
  overflow: visible !important;
}

.hidden {
  opacity: 0;
  visibility: hidden;
}

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

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

.hide {
  display: none !important;
}

.full-width {
  width: 100%;
}

.full-height {
  height: 100%;
}

.inline-list, .b-program-btn-list {
  display: inline-block;
  vertical-align: middle;
}

.inline-list--top {
  vertical-align: top !important;
}

.inline-list > li, .b-program-btn-list > li {
  display: inline-block;
}

.align-baseline {
  align-items: baseline;
}

.no-scroll {
  overflow: hidden;
}

.mr-auto {
  margin-right: auto;
}

[dir="rtl"] .mr-auto {
  margin-left: auto;
  margin-right: initial;
}

.ml-auto {
  margin-left: auto;
}

[dir="rtl"] .ml-auto {
  margin-right: auto;
  margin-left: initial;
}

.mt-0 {
  margin-top: 0rem;
}

.mt-1 {
  margin-top: 1rem;
}

.mt-2 {
  margin-top: 2rem;
}

.mt-3 {
  margin-top: 3rem;
}

.mt-4 {
  margin-top: 4rem;
}

.mt-5 {
  margin-top: 5rem;
}

.mb-0 {
  margin-bottom: 0rem;
}

.mb-1 {
  margin-bottom: 1rem;
}

.mb-2 {
  margin-bottom: 2rem;
}

.mb-3 {
  margin-bottom: 3rem;
}

.mb-4 {
  margin-bottom: 4rem;
}

.mb-5 {
  margin-bottom: 5rem;
}

.pt-1 {
  padding-top: 1rem;
}

.pb-1 {
  padding-bottom: 1rem;
}

.py-1 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.pt-2 {
  padding-top: 2rem;
}

.pb-2 {
  padding-bottom: 2rem;
}

.py-2 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.pt-3 {
  padding-top: 3rem;
}

.pb-3 {
  padding-bottom: 3rem;
}

.py-3 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.pt-4 {
  padding-top: 4rem;
}

.pb-4 {
  padding-bottom: 4rem;
}

.py-4 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.pt-5 {
  padding-top: 5rem;
}

.pb-5 {
  padding-bottom: 5rem;
}

.py-5 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.img-render {
  image-rendering: crisp-edges;
  image-rendering: -moz-crisp-edges;
  /* Firefox */
  image-rendering: -o-crisp-edges;
  /* Opera */
  image-rendering: -webkit-optimize-contrast;
  /* Webkit (non-standard naming)*/
  -ms-interpolation-mode: nearest-neighbor;
  /* IE (non-standard property) */
}

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

body {
  font-family: "SimplerPro_V3", "Roboto", sans-serif;
  letter-spacing: 0em;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  height: 100%;
  font-weight: 400;
  line-height: 1.25;
  color: #2C1C21;
  background: linear-gradient(180deg, #2C1C21 0%, #F05658 49.65%, #2C1C21 100%);
  font-size: 1.8rem;
  -webkit-text-size-adjust: 100%;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  word-wrap: break-word;
}

html {
  min-height: 100%;
  height: 100%;
  font-size: 62.5% !important;
}

@media screen and (max-width: 767px) {
  html {
    font-size: 42.5% !important;
  }
}

@media screen and (max-width: 1280px) and (min-width: 1024px) {
  html {
    font-size: calc((0.8vw)*0.77) !important;
  }
}

@media screen and (max-width: 1023px) and (min-width: 768px) {
  html {
    font-size: calc((0.87vw)*0.79) !important;
  }
}

@media screen and (max-width: 39.99875em) and (max-width: 767px) {
  html {
    font-size: 62.5% !important;
  }
}

a {
  text-decoration: none;
  color: #E5B16A;
}

a:hover {
  text-decoration: underline;
}

.visible {
  overflow: visible !important;
}

.fullwidth {
  width: 100% !important;
  max-width: 100% !important;
}

.halfwidth {
  width: 50% !important;
}

.fullheight {
  height: 100%;
  min-height: 100%;
}

.truncate {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

img {
  display: inline-block;
  vertical-align: middle;
}

img.normal {
  width: auto;
  max-width: none;
}

img.responsive {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.img-fluid {
  width: auto;
  max-width: 100%;
}

.img-rounded {
  overflow: hidden;
  border-radius: 50%;
}

.left {
  float: left !important;
}

.right {
  float: right !important;
}

.pull-left, .pull-right {
  float: none !important;
}

.flex-center {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}

@font-face {
  font-family: 'Mandatory';
  src: url("../font/Mandatory29.woff2") format("woff2"), url("../font/Mandatory29.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Mandatory-18';
  src: url("../font/Mandatory-18.woff2") format("woff2"), url("../font/Mandatory-18.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'SimplerPro_V3';
  src: url("../font/SimplerPro_V3-Regular.eot");
  src: local("SimplerPro_V3 Regular"), local("SimplerPro_V3-Regular"), url("../font/SimplerPro_V3-Regular.eot?#iefix") format("embedded-opentype"), url("../font/SimplerPro_V3-Regular.woff2") format("woff2"), url("../font/SimplerPro_V3-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'SimplerPro_V3';
  src: url("../font/SimplerPro_V3-Bold.eot");
  src: local("SimplerPro_V3 Bold"), local("SimplerPro_V3-Bold"), url("../font/SimplerPro_V3-Bold.eot?#iefix") format("embedded-opentype"), url("../font/SimplerPro_V3-Bold.woff2") format("woff2"), url("../font/SimplerPro_V3-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal;
}

.os-animation, .os-animation-always {
  opacity: 0;
}

.os-animation.animated, .os-animation-always.animated {
  opacity: 1;
}

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

.animated.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
}

/* .fadeOut is style taken from Animation.css and this is how it looks in owl.carousel.css:  */
.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut;
}

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}

.progress {
  -webkit-animation-name: progress;
  animation-name: progress;
}

@-webkit-keyframes progress {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}

@keyframes progress {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInDown {
  animation-name: fadeInDown;
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-50%, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInLeft {
  animation-name: fadeInLeft;
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInRight {
  animation-name: fadeInRight;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 30%, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.fadeInUp {
  animation-name: fadeInUp;
}

/*!
 * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face {
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../font/webfonts/fa-brands-400.eot");
  src: url("../font/webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../font/webfonts/fa-brands-400.woff2") format("woff2"), url("../font/webfonts/fa-brands-400.woff") format("woff"), url("../font/webfonts/fa-brands-400.ttf") format("truetype"), url("../font/webfonts/fa-brands-400.svg#fontawesome") format("svg");
}

.fab {
  font-family: 'Font Awesome 5 Brands';
  font-weight: 400;
}

@font-face {
  font-family: 'icomoon';
  src: url("../font/icomoon.ttf?8sr812") format("truetype"), url("../font/icomoon.woff?8sr812") format("woff"), url("../font/icomoon.svg?8sr812#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
}

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

p {
  margin: 0 0 2rem;
  font-size: 1.8rem;
  line-height: 1.5;
  font-family: "SimplerPro_V3", "Roboto", sans-serif;
}

p:last-child {
  margin-bottom: 0;
}

strong {
  font-family: "Mandatory-18", "Roboto", sans-serif;
  font-weight: 400;
  letter-spacing: 0.01em;
}

i {
  font-style: italic;
}

i[class*="icon-"], i[class*="fa-"], i.fa, i.fab {
  font-style: normal;
}

a {
  transition: color .25s;
  text-decoration: none;
}

a:hover, a:focus {
  color: #E5B16A;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Mandatory", "Roboto", sans-serif;
  margin-bottom: 2rem;
}

h1 {
  font-size: 3.6rem;
}

h2 {
  font-size: 3rem;
}

h3 {
  font-size: 2.4rem;
}

h4 {
  font-size: 2rem;
}

sup {
  vertical-align: super;
  font-size: 60%;
}

[dir="rtl"] .b-header__lang-link, [dir="rtl"] .b-header__lang a, .rtl .b-header__lang-link, .rtl .b-header__lang a, .s-hero__event-itm, .s-content__nav-arrow, .s-content__nav-title, .s-content__header-title, .s-special__itm, .s-special .itm-event, .b-box-about__title, .b-box-person .b-box-person__title, .b-box-artist__title, .b-person__band-title, .b-person__social-title, .b-person__contact-title, .b-artist-list__title, .artist-box, .b-box-event__header-title, .slider-item__title, .s-showcase__list-year {
  font-family: "Mandatory", "Roboto", sans-serif;
}

.b-header__menu-nav ul .b-submenu, .b-header__lang-link, .b-header__lang a, form .row-field--btn .btn, form .row-field--btn .btn-flat, form .row-field--btn .b-city-list a, .b-city-list form .row-field--btn a, form .row-field--btn .button, .gform_wrapper .gform_button.button, .s-notice__title, .b-schedule .col-artist, .pagination .page-numbers, .b-city-list a, .b-program-btn-list .btn, .b-program-btn-list .btn-flat, .b-program-btn-list .b-city-list a, .b-city-list .b-program-btn-list a {
  font-family: "Mandatory-18", "Roboto", sans-serif;
}

.section-title, .b-footer__title, .b-box-about__title {
  position: relative;
  z-index: 1;
  font-size: 4.5rem;
  font-family: "Mandatory", "Roboto", sans-serif;
  color: #2C1C21;
  text-transform: uppercase;
  line-height: 1.1;
  margin-bottom: 0;
}

.section-title.m-border, .b-footer__title, .m-border.b-box-about__title {
  border-bottom: 5px solid;
  padding-bottom: .75rem;
}

.section-title.m-group, .m-group.b-footer__title, .m-group.b-box-about__title {
  margin-bottom: .5rem;
}

.section-title.m-primary, .m-primary.b-footer__title, .m-primary.b-box-about__title {
  color: #EB5D59;
}

.article-title {
  position: relative;
  z-index: 1;
  font-size: 6rem;
  font-weight: 700;
  font-family: "Mandatory", "Roboto", sans-serif;
  color: #2C1C21;
  text-transform: uppercase;
  line-height: 1.1;
  margin-bottom: 3rem;
}

.column-list--2 {
  column-count: 2;
  column-gap: 3rem;
  column-width: auto;
}

.column-list--2 > li, .column-list--2 > div {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
}

@media print, screen and (max-width: 39.99875em) {
  .column-list--2 {
    column-count: 1;
    column-gap: 3rem;
    column-width: auto;
  }
  .column-list--2 > li, .column-list--2 > div {
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
  }
}

.text--green {
  color: #56BF72;
}

.text--pink {
  color: #D80078;
}

.b-header {
  position: relative;
  background: transparent;
  color: #FCF9E8;
}

.b-header.m-fixed {
  position: fixed;
  z-index: 99;
  left: 0;
  top: 0;
  width: 100%;
  animation: fadeIn .4s ease;
}

.b-header.m-fixed:after {
  content: '';
  z-index: -1;
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(180deg, #2C1C21 0%, rgba(44, 28, 33, 0.9) 17%, rgba(44, 28, 33, 0.7) 57%, rgba(44, 28, 33, 0) 100%);
}

.b-header.m-fixed .b-logo img {
  max-height: 9rem;
}

.b-header.m-fixed .b-header__row {
  padding-top: 1rem;
}

.b-header.m-fixed .b-header__wrp > .row {
  max-width: 100%;
}

.b-header.m-fixed .b-submenu {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

.b-header.m-fixed .b-header__row {
  position: relative;
}

.b-header.m-fixed .b-header__row:after {
  bottom: 0;
  border-bottom: 5px solid;
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
}

.b-header.m-abs {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 99;
  background: transparent;
}

.b-header.m-abs .b-header__wrp > .row {
  max-width: 100%;
}

.b-header .sticky, .b-header.sticky {
  transition: background .3s ease, padding .3s ease;
}

.b-header .sticky.is-stuck, .b-header.sticky.is-stuck {
  background: transparent;
}

.b-header * {
  color: #FCF9E8;
}

.b-header__wrp {
  width: 100%;
}

.b-header__row {
  padding-top: 3rem;
  padding-bottom: 1rem;
  padding-left: 6px;
  padding-right: 8px;
}

@media print, screen and (min-width: 64em) {
  .b-header__row {
    flex-wrap: nowrap;
  }
}

.b-header .b-logo {
  display: block;
}

.b-header .b-logo img {
  max-width: 25.7rem;
  height: 11.9rem;
  max-width: none;
}

@media print, screen and (min-width: 48em) {
  [dir="rtl"] .b-header__menu {
    margin-right: 0;
  }
  .rtl .b-header__menu {
    margin-right: 0;
  }
}

.b-header__menu-nav {
  font-family: "Mandatory", "Roboto", sans-serif;
}

.b-header__menu-nav ul {
  display: flex;
  align-items: baseline;
  font-size: 3rem;
  text-transform: uppercase;
}

.b-header__menu-nav ul li {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.b-header__menu-nav ul li.btn-link > a {
  padding: 0em .5em .12em;
  box-shadow: 0 0 0 2px currentColor;
}

.b-header__menu-nav ul li a {
  padding-top: .3em;
}

.b-header__menu-nav ul li a span {
  display: block;
  font-size: 80%;
  opacity: .8;
  font-weight: normal;
}

.b-header__menu-nav ul li a:hover {
  color: #E5B16A;
}

.b-header__menu-nav ul li a:hover {
  text-decoration: none;
}

.b-header__menu-nav ul li a.btn-link {
  padding: .3em .5em 0;
  padding: 0em .5em .12em;
  box-shadow: 0 0 0 2px currentColor;
}

.b-header__menu-nav ul .is-active > a {
  padding: 0em .5em .12em;
  color: #E5B16A;
}

.b-header__menu-nav ul .has-submenu.is-active:hover > a:before {
  width: 100%;
}

.b-header__menu-nav ul .has-submenu.is-active > a {
  color: #E5B16A;
}

.b-header__menu-nav ul .has-submenu.is-active > a:before {
  position: absolute;
  height: 4px;
  width: 0%;
  transition: .3s ease;
  background: #506084;
}

.b-header__menu-nav ul .has-submenu.is-active .b-submenu {
  display: block;
  opacity: 1;
  visibility: visible;
  margin-top: 0;
}

.b-header__menu-nav ul .has-submenu.is-active .b-submenu ul {
  opacity: 1;
}

.b-header__menu-nav ul .has-submenu.on-hover > a {
  position: relative;
}

.b-header__menu-nav ul .has-submenu.on-hover > a:after {
  content: '';
  position: absolute;
  height: 8rem;
  left: 0;
  top: 100%;
  width: 100%;
}

.b-header__menu-nav ul .has-submenu .b-submenu {
  z-index: 99;
  visibility: hidden;
  transition: opacity .1s ease, margin .2s ease, visibility .1s ease;
  opacity: 0;
  position: absolute;
  width: 100%;
  width: calc(100% - 13rem - 3.4rem);
  max-width: 133.6rem;
  transform: translateX(-50%);
  left: 50%;
  top: 100%;
  margin-top: 2rem;
  font-size: 2.2rem;
}

@media screen and (min-width: 1400px) {
  .b-header__menu-nav ul .has-submenu .b-submenu {
    width: 128rem;
  }
  .b-header__menu-nav ul .has-submenu .b-submenu a {
    padding-left: .5em;
    padding-right: .5em;
  }
}

.b-header__menu-nav ul .b-submenu {
  background: #E5B16A;
  border: 6px solid #2C1C21;
  text-align: center;
  font-size: 2.2rem;
}

.b-header__menu-nav ul .b-submenu__list {
  font-size: 100%;
}

.b-header__menu-nav ul .b-submenu ul {
  font-size: 100%;
  display: inline-block;
}

.b-header__menu-nav ul .b-submenu ul li:hover {
  color: #FCF9E8;
}

.b-header__menu-nav ul .b-submenu ul li:hover a {
  color: #FCF9E8;
}

.b-header__menu-nav ul .b-submenu .is-active a {
  color: #FCF9E8;
}

.b-header__menu-nav ul .b-submenu a {
  padding-top: .5em;
  padding-bottom: .4em;
  display: block;
  color: #2C1C21;
  font-size: 100%;
  transition: color .15s ease;
  padding-left: .3em;
  padding-right: .3em;
}

.b-header__menu-nav ul .b-submenu a:hover, .b-header__menu-nav ul .b-submenu a:focus, .b-header__menu-nav ul .b-submenu a.is-active {
  color: #FCF9E8;
}

.b-header__menu-nav > ul > li {
  padding-left: .5rem;
  padding-right: .5rem;
}

.b-header__menu-nav > ul > li > a {
  padding: 0em .5em .12em;
}

.b-header__menu-nav > ul > li > a:hover {
  box-shadow: 0 0 0 2px currentColor;
}

.b-header .b-submenu__list li {
  display: inline-block;
}

.b-header__lang-link, .b-header__lang a {
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0;
}

.b-header__lang-link:hover, .b-header__lang a:hover {
  color: #E5B16A;
}

.b-header__lang-link:hover *, .b-header__lang a:hover * {
  color: currentColor;
}

.b-header__lang-link:hover, .b-header__lang a:hover {
  text-decoration: none;
}

[dir="rtl"] .b-header__lang-link, [dir="rtl"] .b-header__lang a {
  font-size: 2.4rem;
}

.rtl .b-header__lang-link, .rtl .b-header__lang a {
  font-size: 2.4rem;
}

.b-header__right {
  display: inline-flex;
  align-items: center;
}

.b-header__right > *:not(:last-child) {
  margin-inline-end: 3rem;
}

.b-header__tickets-btn {
  color: #ECD108;
  position: relative;
  z-index: 1;
  display: inline-block;
}

.b-header__tickets-btn:hover {
  color: #fe4f52;
}

.b-header__tickets-btn > img {
  max-height: 5.2rem;
}

.b-header__tickets-btn-bg {
  z-index: -1;
  color: currentColor;
  fill: currentColor;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.b-header__tickets-btn-bg * {
  color: currentColor;
  fill: currentColor;
}

.b-header__tickets-btn-bg .show-on-he {
  width: 97%;
  margin: auto;
}

@media print, screen and (max-width: 63.99875em) {
  .b-header__row {
    align-items: center;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .b-header .b-logo img {
    height: 60px;
  }
  .b-header__menu, .b-header__right {
    display: none;
  }
  .b-header__row {
    padding-top: 10px;
    padding-bottom: 12px;
  }
}

@media screen and (max-width: 767px) {
  .b-header__row {
    padding-top: 10px;
    padding-bottom: 12px;
  }
}

@media screen and (max-width: 425px) {
  .b-header {
    padding-left: 2rem;
    padding-right: 2rem;
  }
  .b-header__row:after {
    display: none;
  }
}

.is-menu-open {
  overflow: hidden;
}

.is-menu-open .burger {
  z-index: 101;
}

.is-menu-open .b-header__callback {
  z-index: 101;
}

.is-menu-open .b-header__logo {
  position: relative;
  z-index: 101;
}

.is-menu-open .b-header__menu {
  display: block !important;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100;
  padding: 2rem;
  padding-top: 100px;
  background: #2c1c21;
}

.is-menu-open .b-header__menu .b-header__lang {
  position: absolute;
  bottom: 2rem;
  left: 0;
  width: 100%;
  text-align: center;
}

.is-menu-open .b-header__menu-nav {
  overflow-y: auto;
  height: 100%;
  padding-bottom: 4rem;
  display: block !important;
}

.is-menu-open .b-header__menu-nav > ul {
  flex: 1;
  height: auto;
  height: 100%;
  text-align: center;
  flex-direction: column;
}

.is-menu-open .b-header__menu-nav > ul li {
  padding-top: 1rem;
  padding-bottom: 1rem;
  max-width: 100%;
  width: 100%;
}

.is-menu-open .b-header__menu-nav > ul li + li {
  border: none;
}

.is-menu-open .b-header__menu-nav > ul a {
  font-size: 3.85vw;
  line-height: 1.1;
}

@media screen and (max-width: 425px) {
  .is-menu-open .b-header__menu-nav > ul a {
    font-size: 3rem;
  }
}

.is-menu-open .b-header__menu-nav > ul .has-submenu > a:after {
  display: none;
}

.is-menu-open .b-header__menu-nav > ul .has-submenu.is-active .b-submenu {
  display: block;
}

.is-menu-open .b-header__menu-nav > ul .b-submenu {
  top: 0;
  border: none;
  position: relative;
  left: 0;
  width: 100%;
  transform: none;
  display: none;
}

.is-menu-open .b-header__menu-nav > ul .b-submenu__list {
  display: block;
}

.is-menu-open .b-header__menu-nav > ul .b-submenu__list li {
  width: 100%;
  display: block;
  padding: 0;
}

.is-menu-open .b-header__menu-nav > ul .b-submenu__list li a {
  font-size: 2.2rem;
}

.b-footer {
  position: relative;
  overflow: hidden;
  background: #2C1C21;
  color: #FCF9E8;
  font-size: 1.44rem;
  padding: 0rem 0 10rem;
}

.b-footer p {
  font-size: 100%;
}

.b-footer * {
  color: #FCF9E8;
}

.b-footer .b-logo--footer {
  max-width: 20rem;
}

.b-footer .b-social-inline [class*="icon"], .b-footer .b-social-inline [class*="fa"] {
  font-size: 3.3rem;
  display: inline-block;
}

.b-footer__soc {
  max-width: 25rem;
  display: inline-flex;
  flex-direction: column;
  align-items: baseline;
}

.b-footer__soc ul {
  width: 100%;
  padding-top: 1rem;
  padding-bottom: 2rem;
  display: flex;
  justify-content: space-between;
}

.b-footer__soc ul li {
  padding: 0;
  padding-top: 1rem;
  padding-right: 1rem;
}

.b-footer__soc ul li:last-of-type {
  padding-right: 0;
}

.b-footer__top {
  z-index: 1;
  position: relative;
  margin-bottom: 6rem;
}

.b-footer__top:before {
  content: '';
  position: absolute;
  pointer-events: none;
  z-index: -1;
  width: 150vw;
  left: -25vw;
  top: 0;
  height: 100%;
  background: #2C1C21;
}

@media print, screen and (min-width: 64em) {
  .b-footer__top + .row--wide {
    padding-left: 8rem;
    padding-right: 8rem;
  }
}

.b-footer__stripe {
  display: flex;
  justify-content: space-between;
  margin-left: -6rem;
  margin-right: -6rem;
  background: #56BF72;
}

.b-footer__stripe > img {
  flex-basis: 0;
  max-width: 6.5rem;
  margin: -1px;
  margin-top: 0px;
}

.b-footer__title {
  font-size: 3rem;
  padding-bottom: 0.3em;
  margin-bottom: 2rem;
}

.b-footer__info > div + div {
  margin-top: 6rem;
}

.b-footer__info p {
  font-size: 1.8rem;
}

.b-footer__info a:hover {
  text-decoration: none;
}

.b-footer__info-contact {
  font-size: 1.8rem;
}

.b-footer__nav-list li a {
  display: block;
  padding-bottom: .8rem;
}

.b-footer__nav-list li a:hover {
  color: #E5B16A;
}

.b-footer__nav-list li a:hover {
  text-decoration: none;
}

.b-footer__logo-list {
  display: -ms-grid;
  display: grid;
  -webkit-justify-content: space-around;
  -ms-flex-pack: distribute;
  justify-content: space-around;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  grid-auto-columns: 1fr;
  grid-column-gap: 3rem;
  grid-column-gap: 8%;
  grid-row-gap: 1.6rem;
  -ms-grid-columns: 1fr 1fr 1fr 1fr;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  background: #fcf9e8;
  align-items: center;
  padding: 1.6rem 3rem;
}

.b-footer__logo-list._border {
  border: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .b-footer__logo-list._border {
    border-width: 4px;
  }
}

.b-footer__logo-list > img {
  width: 100%;
  margin-bottom: 0px;
}

.b-footer__logo-list > img._wide {
  -ms-grid-row-align: center;
  align-self: center;
  -ms-grid-column: span 1;
  grid-column-start: span 1;
  -ms-grid-column-span: 1;
  grid-column-end: span 1;
  -ms-grid-row: span 1;
  grid-row-start: span 1;
  -ms-grid-row-span: 1;
  grid-row-end: span 1;
}

.b-footer__logo-list > img._uwide {
  -ms-grid-row-align: center;
  align-self: center;
  -ms-grid-column: span 2;
  grid-column-start: span 2;
  -ms-grid-column-span: 2;
  grid-column-end: span 2;
  -ms-grid-row: span 1;
  grid-row-start: span 1;
  -ms-grid-row-span: 1;
  grid-row-end: span 1;
}

.b-footer--partners {
  position: relative;
  background: #FDF3DA;
  padding-top: 13rem;
  padding-bottom: 5rem;
}

.b-footer--partners:before {
  content: '';
  position: absolute;
  top: 6.3rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 137rem;
  border-top: 4px solid #000;
}

.b-footer--partners .b-footer__top {
  margin-bottom: 0;
}

.b-footer--partners .b-footer__top.row > .column {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.b-footer--partners img {
  max-width: 100%;
}

@media print, screen and (max-width: 63.99875em) {
  .b-footer .row--section > .column + .column {
    margin-top: 3rem;
  }
}

@media screen and (max-width: 767px) {
  .b-footer__stripe {
    padding-left: 3rem;
    padding-right: 3rem;
  }
  .b-footer .row > .column + .column {
    margin-top: 3rem;
  }
  .b-footer__nav-list {
    column-count: 2;
    column-gap: 3rem;
    column-width: auto;
  }
  .b-footer__nav-list > li, .b-footer__nav-list > div {
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .b-footer__nav-list + div {
    text-align: center;
  }
  .b-footer__soc {
    width: 100%;
    max-width: 100%;
    display: flex;
  }
  .b-footer__soc ul {
    padding-bottom: 0;
  }
  .b-footer__soc .b-social-inline {
    justify-content: center;
  }
  .b-footer__soc .b-social-inline li {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .b-footer__copy {
    justify-content: center;
    text-align: center;
  }
  .b-footer__logo-list {
    -ms-grid-columns: 1fr 1fr 1fr;
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media screen and (max-width: 425px) {
  .b-footer {
    padding-left: 3rem;
    padding-right: 3rem;
  }
  .b-footer .row--wide {
    margin-left: auto;
    margin-right: auto;
  }
}

.l-main {
  padding: 0;
}

.container, .container-fluid {
  max-width: 150rem;
  width: 100%;
  padding-left: 5rem;
  padding-right: 5rem;
  margin-left: auto;
  margin-right: auto;
}

@media print, screen and (max-width: 39.99875em) {
  .container, .container-fluid {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media screen and (max-width: 425px) {
  .container, .container-fluid {
    padding-left: 0rem;
    padding-right: 0rem;
  }
  .container > .row, .container-fluid > .row {
    padding-left: 0;
    padding-right: 0;
  }
  .container > .row > .column, .container-fluid > .row > .column {
    padding-left: 0;
    padding-right: 0;
  }
}

.row {
  max-width: 150rem;
}

.row--narrow {
  margin-left: -6px;
  margin-right: -6px;
}

.row--narrow > .col, .row--narrow [class^="col-"], .row--narrow > .column {
  padding-left: 6px;
  padding-right: 6px;
}

.row--wide {
  margin-left: -3.2rem;
  margin-right: -3.2rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.row--wide > .col, .row--wide [class^="col-"], .row--wide > .column {
  padding-left: 3.2rem;
  padding-right: 3.2rem;
}

.sticky-container + .l-main {
  position: static;
}

.l-wrapper {
  background: linear-gradient(180deg, #2C1C21 0%, #b4c28d 49.65%, #b4c28d 100%);
  position: relative;
  min-height: 1%;
  height: auto;
  overflow: hidden;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
  min-height: 100vh;
}

.l-wrapper main {
  overflow: hidden;
  display: block;
  width: 100%;
  position: relative;
}

.l-wrapper .l-main {
  flex: 1;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  -ms-flex-item-align: stretch;
  align-self: stretch;
}

.l-header {
  width: 100%;
  display: block;
}

.l-footer {
  display: block;
  width: 100%;
  overflow: hidden;
}

.aside-main-menu {
  will-change: -webkit-transform;
  will-change: transform;
  position: fixed;
  z-index: 199;
  top: 0;
  right: 0;
  color: #fff;
  background: rgba(0, 0, 0, 0.9);
  width: 100%;
  max-width: 320px;
  height: 100%;
  min-height: 100vh;
  padding: 3rem;
  visibility: hidden;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  transition: transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1), visibility 0.5s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
  transform: translateX(100%);
  transform: translate3d(100%, 0%, 0);
}

.aside-main-menu.is-active {
  transform: translate3d(0, 0, 0);
  transform: translateX(0);
  visibility: visible;
}

.aside-main-menu__nav {
  padding-right: 15px;
  width: 100%;
  height: 100%;
  font-size: 1.875rem;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-transform: uppercase;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -moz-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}

.aside-main-menu__nav ul {
  display: block;
}

.aside-main-menu__nav ul li {
  margin: .2em 0;
  display: block;
}

.aside-main-menu__nav ul li:last-child a {
  margin-bottom: 0;
}

.aside-main-menu__nav ul li a {
  display: inline-block;
  color: #fff;
  font-size: 1.2em;
  margin-bottom: 2vh;
  text-transform: uppercase;
  text-decoration: none;
  outline: 0;
  transition: all .3s ease;
}

.aside-main-menu__nav ul li a:hover, .aside-main-menu__nav ul li a.is-active {
  text-decoration: none;
  color: #2C1C21;
  border-bottom-color: transparent;
}

@media screen and (max-width: 1024px) {
  .aside-main-menu__nav ul li a {
    font-size: 26px;
  }
}

@media screen and (max-width: 1024px) and (max-height: 400px) and (orientation: landscape) {
  .aside-main-menu__nav ul li a {
    font-size: 2rem;
  }
}

@media screen and (max-width: 640px) {
  .aside-main-menu__nav ul li a {
    font-size: 5vw;
    margin-bottom: 2.5vh;
    line-height: 1.4;
    border-bottom: none;
  }
}

@media screen and (max-width: 640px) and (max-height: 400px) and (orientation: landscape) {
  .aside-main-menu__nav ul li a {
    font-size: 2rem;
  }
}

.aside-main-menu__wrp {
  padding-top: 6rem;
}

.aside-main-menu .b-header__search {
  display: block !important;
  max-width: 100%;
  margin-bottom: 2vh;
}

.aside-main-menu .b-header__search-form .btn-search {
  color: #fff;
}

.aside-main-menu .b-header__search-form .btn-search:hover {
  color: #2C1C21;
}

.aside-main-menu .menu-icon.burger {
  position: absolute;
  right: 1.5rem;
  top: 1.5rem;
  color: #fff;
}

.aside-main-menu .menu-icon.burger span {
  color: #fff;
}

.aside-main-menu .menu-icon.burger:before, .aside-main-menu .menu-icon.burger:after {
  color: #fff;
}

@media screen and (max-width: 1024px) {
  .aside-main-menu__nav {
    padding-top: 5rem;
  }
}

@media screen and (max-width: 640px) {
  .aside-main-menu__nav {
    padding-top: 2vh;
  }
}

.overlay {
  transition: all 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
  display: block;
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: 199;
  background: rgba(0, 0, 0, 0.85);
  visibility: hidden;
  opacity: 0;
}

.menu-is-open .overlay {
  visibility: visible;
  opacity: 1;
  transition: all 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.sidebar-is-open .overlay {
  visibility: visible;
  opacity: 1;
  transition: all 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
}

input[type=text],
input[type=password],
input[type=email],
input[type=url],
input[type=time],
input[type=date],
input[type=datetime-local],
input[type=tel],
input[type=number],
input[type=search],
input[type=file],
textarea, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio) {
  background-color: #fff;
  border: 6px solid #000;
  border-radius: 0px;
  outline: none;
  height: 6rem;
  line-height: 6rem;
  width: 100%;
  color: #2C1C21;
  font-size: 2rem;
  font-weight: 400;
  padding: 0 1.2rem;
  margin-bottom: 2rem;
  transition: border .3s ease, box-shadow .3s ease;
  box-sizing: border-box;
  box-shadow: none;
}

input[type=text]::-webkit-input-placeholder,
input[type=password]::-webkit-input-placeholder,
input[type=email]::-webkit-input-placeholder,
input[type=url]::-webkit-input-placeholder,
input[type=time]::-webkit-input-placeholder,
input[type=date]::-webkit-input-placeholder,
input[type=datetime-local]::-webkit-input-placeholder,
input[type=tel]::-webkit-input-placeholder,
input[type=number]::-webkit-input-placeholder,
input[type=search]::-webkit-input-placeholder,
input[type=file]::-webkit-input-placeholder,
textarea::-webkit-input-placeholder, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio)::-webkit-input-placeholder {
  /* WebKit browsers */
  color: #000;
  font-weight: 400;
}

input[type=text]:-moz-placeholder,
input[type=password]:-moz-placeholder,
input[type=email]:-moz-placeholder,
input[type=url]:-moz-placeholder,
input[type=time]:-moz-placeholder,
input[type=date]:-moz-placeholder,
input[type=datetime-local]:-moz-placeholder,
input[type=tel]:-moz-placeholder,
input[type=number]:-moz-placeholder,
input[type=search]:-moz-placeholder,
input[type=file]:-moz-placeholder,
textarea:-moz-placeholder, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: #000;
  font-weight: 400;
}

input[type=text]::-moz-placeholder,
input[type=password]::-moz-placeholder,
input[type=email]::-moz-placeholder,
input[type=url]::-moz-placeholder,
input[type=time]::-moz-placeholder,
input[type=date]::-moz-placeholder,
input[type=datetime-local]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=number]::-moz-placeholder,
input[type=search]::-moz-placeholder,
input[type=file]::-moz-placeholder,
textarea::-moz-placeholder, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio)::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: #000;
  font-weight: 400;
}

input[type=text]:-ms-input-placeholder,
input[type=password]:-ms-input-placeholder,
input[type=email]:-ms-input-placeholder,
input[type=url]:-ms-input-placeholder,
input[type=time]:-ms-input-placeholder,
input[type=date]:-ms-input-placeholder,
input[type=datetime-local]:-ms-input-placeholder,
input[type=tel]:-ms-input-placeholder,
input[type=number]:-ms-input-placeholder,
input[type=search]:-ms-input-placeholder,
input[type=file]:-ms-input-placeholder,
textarea:-ms-input-placeholder, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):-ms-input-placeholder {
  /* Internet Explorer 10+ */
  color: #000;
  font-weight: 400;
}

input[type=text]:hover, input[type=text]:focus,
input[type=password]:hover,
input[type=password]:focus,
input[type=email]:hover,
input[type=email]:focus,
input[type=url]:hover,
input[type=url]:focus,
input[type=time]:hover,
input[type=time]:focus,
input[type=date]:hover,
input[type=date]:focus,
input[type=datetime-local]:hover,
input[type=datetime-local]:focus,
input[type=tel]:hover,
input[type=tel]:focus,
input[type=number]:hover,
input[type=number]:focus,
input[type=search]:hover,
input[type=search]:focus,
input[type=file]:hover,
input[type=file]:focus,
textarea:hover,
textarea:focus, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):hover, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):focus {
  background-color: #fff;
  border-color: #E5B16A;
}

input[type=text].inline,
input[type=password].inline,
input[type=email].inline,
input[type=url].inline,
input[type=time].inline,
input[type=date].inline,
input[type=datetime-local].inline,
input[type=tel].inline,
input[type=number].inline,
input[type=search].inline,
input[type=file].inline,
textarea.inline, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).inline {
  width: auto;
}

input[type=text].is-error, input[type=text].has-error,
input[type=password].is-error,
input[type=password].has-error,
input[type=email].is-error,
input[type=email].has-error,
input[type=url].is-error,
input[type=url].has-error,
input[type=time].is-error,
input[type=time].has-error,
input[type=date].is-error,
input[type=date].has-error,
input[type=datetime-local].is-error,
input[type=datetime-local].has-error,
input[type=tel].is-error,
input[type=tel].has-error,
input[type=number].is-error,
input[type=number].has-error,
input[type=search].is-error,
input[type=search].has-error,
input[type=file].is-error,
input[type=file].has-error,
textarea.is-error,
textarea.has-error, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).is-error, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).has-error {
  color: #e3725b;
  border-color: #e3725b;
}

input[type=text].is-error .required-icn, input[type=text].has-error .required-icn,
input[type=password].is-error .required-icn,
input[type=password].has-error .required-icn,
input[type=email].is-error .required-icn,
input[type=email].has-error .required-icn,
input[type=url].is-error .required-icn,
input[type=url].has-error .required-icn,
input[type=time].is-error .required-icn,
input[type=time].has-error .required-icn,
input[type=date].is-error .required-icn,
input[type=date].has-error .required-icn,
input[type=datetime-local].is-error .required-icn,
input[type=datetime-local].has-error .required-icn,
input[type=tel].is-error .required-icn,
input[type=tel].has-error .required-icn,
input[type=number].is-error .required-icn,
input[type=number].has-error .required-icn,
input[type=search].is-error .required-icn,
input[type=search].has-error .required-icn,
input[type=file].is-error .required-icn,
input[type=file].has-error .required-icn,
textarea.is-error .required-icn,
textarea.has-error .required-icn, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).is-error .required-icn, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).has-error .required-icn {
  opacity: 1;
}

.has-error input[type=text]:hover, .has-error input[type=text]:focus, .has-error
input[type=password]:hover, .has-error
input[type=password]:focus, .has-error
input[type=email]:hover, .has-error
input[type=email]:focus, .has-error
input[type=url]:hover, .has-error
input[type=url]:focus, .has-error
input[type=time]:hover, .has-error
input[type=time]:focus, .has-error
input[type=date]:hover, .has-error
input[type=date]:focus, .has-error
input[type=datetime-local]:hover, .has-error
input[type=datetime-local]:focus, .has-error
input[type=tel]:hover, .has-error
input[type=tel]:focus, .has-error
input[type=number]:hover, .has-error
input[type=number]:focus, .has-error
input[type=search]:hover, .has-error
input[type=search]:focus, .has-error
input[type=file]:hover, .has-error
input[type=file]:focus, .has-error
textarea:hover, .has-error
textarea:focus, .has-error .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):hover, .has-error .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):focus {
  box-shadow: none;
  background-color: #fff;
}

.has-error input[type=text] .required-icn, .has-error
input[type=password] .required-icn, .has-error
input[type=email] .required-icn, .has-error
input[type=url] .required-icn, .has-error
input[type=time] .required-icn, .has-error
input[type=date] .required-icn, .has-error
input[type=datetime-local] .required-icn, .has-error
input[type=tel] .required-icn, .has-error
input[type=number] .required-icn, .has-error
input[type=search] .required-icn, .has-error
input[type=file] .required-icn, .has-error
textarea .required-icn, .has-error .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio) .required-icn {
  opacity: 1;
}

input[type=text]:focus, input[type=text]:active,
input[type=password]:focus,
input[type=password]:active,
input[type=email]:focus,
input[type=email]:active,
input[type=url]:focus,
input[type=url]:active,
input[type=time]:focus,
input[type=time]:active,
input[type=date]:focus,
input[type=date]:active,
input[type=datetime-local]:focus,
input[type=datetime-local]:active,
input[type=tel]:focus,
input[type=tel]:active,
input[type=number]:focus,
input[type=number]:active,
input[type=search]:focus,
input[type=search]:active,
input[type=file]:focus,
input[type=file]:active,
textarea:focus,
textarea:active, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):focus, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):active {
  border-color: #E5B16A;
}

input[type=text]:focus.is-error, input[type=text]:focus.has-error, input[type=text]:active.is-error, input[type=text]:active.has-error,
input[type=password]:focus.is-error,
input[type=password]:focus.has-error,
input[type=password]:active.is-error,
input[type=password]:active.has-error,
input[type=email]:focus.is-error,
input[type=email]:focus.has-error,
input[type=email]:active.is-error,
input[type=email]:active.has-error,
input[type=url]:focus.is-error,
input[type=url]:focus.has-error,
input[type=url]:active.is-error,
input[type=url]:active.has-error,
input[type=time]:focus.is-error,
input[type=time]:focus.has-error,
input[type=time]:active.is-error,
input[type=time]:active.has-error,
input[type=date]:focus.is-error,
input[type=date]:focus.has-error,
input[type=date]:active.is-error,
input[type=date]:active.has-error,
input[type=datetime-local]:focus.is-error,
input[type=datetime-local]:focus.has-error,
input[type=datetime-local]:active.is-error,
input[type=datetime-local]:active.has-error,
input[type=tel]:focus.is-error,
input[type=tel]:focus.has-error,
input[type=tel]:active.is-error,
input[type=tel]:active.has-error,
input[type=number]:focus.is-error,
input[type=number]:focus.has-error,
input[type=number]:active.is-error,
input[type=number]:active.has-error,
input[type=search]:focus.is-error,
input[type=search]:focus.has-error,
input[type=search]:active.is-error,
input[type=search]:active.has-error,
input[type=file]:focus.is-error,
input[type=file]:focus.has-error,
input[type=file]:active.is-error,
input[type=file]:active.has-error,
textarea:focus.is-error,
textarea:focus.has-error,
textarea:active.is-error,
textarea:active.has-error, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):focus.is-error, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):focus.has-error, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):active.is-error, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):active.has-error {
  border-color: #e3725b;
  color: #e3725b;
}

input[type=text]:invalid:focus + .required-icn,
input[type=password]:invalid:focus + .required-icn,
input[type=email]:invalid:focus + .required-icn,
input[type=url]:invalid:focus + .required-icn,
input[type=time]:invalid:focus + .required-icn,
input[type=date]:invalid:focus + .required-icn,
input[type=datetime-local]:invalid:focus + .required-icn,
input[type=tel]:invalid:focus + .required-icn,
input[type=number]:invalid:focus + .required-icn,
input[type=search]:invalid:focus + .required-icn,
input[type=file]:invalid:focus + .required-icn,
textarea:invalid:focus + .required-icn, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):invalid:focus + .required-icn {
  opacity: 1;
}

input[type=text]:valid:focus, input[type=text]:focus,
input[type=password]:valid:focus,
input[type=password]:focus,
input[type=email]:valid:focus,
input[type=email]:focus,
input[type=url]:valid:focus,
input[type=url]:focus,
input[type=time]:valid:focus,
input[type=time]:focus,
input[type=date]:valid:focus,
input[type=date]:focus,
input[type=datetime-local]:valid:focus,
input[type=datetime-local]:focus,
input[type=tel]:valid:focus,
input[type=tel]:focus,
input[type=number]:valid:focus,
input[type=number]:focus,
input[type=search]:valid:focus,
input[type=search]:focus,
input[type=file]:valid:focus,
input[type=file]:focus,
textarea:valid:focus,
textarea:focus, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):valid:focus, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio):focus {
  border-color: #E5B16A;
}

input[type=text].is-error:focus,
input[type=password].is-error:focus,
input[type=email].is-error:focus,
input[type=url].is-error:focus,
input[type=time].is-error:focus,
input[type=date].is-error:focus,
input[type=datetime-local].is-error:focus,
input[type=tel].is-error:focus,
input[type=number].is-error:focus,
input[type=search].is-error:focus,
input[type=file].is-error:focus,
textarea.is-error:focus, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).is-error:focus {
  color: #2C1C21;
  border-color: #E5B16A;
}

input[type=text].is-error::-webkit-input-placeholder,
input[type=password].is-error::-webkit-input-placeholder,
input[type=email].is-error::-webkit-input-placeholder,
input[type=url].is-error::-webkit-input-placeholder,
input[type=time].is-error::-webkit-input-placeholder,
input[type=date].is-error::-webkit-input-placeholder,
input[type=datetime-local].is-error::-webkit-input-placeholder,
input[type=tel].is-error::-webkit-input-placeholder,
input[type=number].is-error::-webkit-input-placeholder,
input[type=search].is-error::-webkit-input-placeholder,
input[type=file].is-error::-webkit-input-placeholder,
textarea.is-error::-webkit-input-placeholder, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).is-error::-webkit-input-placeholder {
  /* WebKit browsers */
}

input[type=text].is-error:-moz-placeholder,
input[type=password].is-error:-moz-placeholder,
input[type=email].is-error:-moz-placeholder,
input[type=url].is-error:-moz-placeholder,
input[type=time].is-error:-moz-placeholder,
input[type=date].is-error:-moz-placeholder,
input[type=datetime-local].is-error:-moz-placeholder,
input[type=tel].is-error:-moz-placeholder,
input[type=number].is-error:-moz-placeholder,
input[type=search].is-error:-moz-placeholder,
input[type=file].is-error:-moz-placeholder,
textarea.is-error:-moz-placeholder, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).is-error:-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
}

input[type=text].is-error::-moz-placeholder,
input[type=password].is-error::-moz-placeholder,
input[type=email].is-error::-moz-placeholder,
input[type=url].is-error::-moz-placeholder,
input[type=time].is-error::-moz-placeholder,
input[type=date].is-error::-moz-placeholder,
input[type=datetime-local].is-error::-moz-placeholder,
input[type=tel].is-error::-moz-placeholder,
input[type=number].is-error::-moz-placeholder,
input[type=search].is-error::-moz-placeholder,
input[type=file].is-error::-moz-placeholder,
textarea.is-error::-moz-placeholder, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).is-error::-moz-placeholder {
  /* Mozilla Firefox 19+ */
}

input[type=text].is-error:-ms-input-placeholder,
input[type=password].is-error:-ms-input-placeholder,
input[type=email].is-error:-ms-input-placeholder,
input[type=url].is-error:-ms-input-placeholder,
input[type=time].is-error:-ms-input-placeholder,
input[type=date].is-error:-ms-input-placeholder,
input[type=datetime-local].is-error:-ms-input-placeholder,
input[type=tel].is-error:-ms-input-placeholder,
input[type=number].is-error:-ms-input-placeholder,
input[type=search].is-error:-ms-input-placeholder,
input[type=file].is-error:-ms-input-placeholder,
textarea.is-error:-ms-input-placeholder, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).is-error:-ms-input-placeholder {
  /* Internet Explorer 10+ */
}

input[type=text].input-small,
input[type=password].input-small,
input[type=email].input-small,
input[type=url].input-small,
input[type=time].input-small,
input[type=date].input-small,
input[type=datetime-local].input-small,
input[type=tel].input-small,
input[type=number].input-small,
input[type=search].input-small,
input[type=file].input-small,
textarea.input-small, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio).input-small {
  width: 13rem;
  max-width: 13rem;
}

.row-field input[type=text], .row-field
input[type=password], .row-field
input[type=email], .row-field
input[type=url], .row-field
input[type=time], .row-field
input[type=date], .row-field
input[type=datetime-local], .row-field
input[type=tel], .row-field
input[type=number], .row-field
input[type=search], .row-field
input[type=file], .row-field
textarea, .row-field .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio) {
  margin-bottom: 0;
}

@media print, screen and (max-width: 63.99875em) {
  input[type=text],
  input[type=password],
  input[type=email],
  input[type=url],
  input[type=time],
  input[type=date],
  input[type=datetime-local],
  input[type=tel],
  input[type=number],
  input[type=search],
  input[type=file],
  textarea, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio) {
    border-width: 4px;
  }
}

@media print, screen and (max-width: 39.99875em) {
  input[type=text],
  input[type=password],
  input[type=email],
  input[type=url],
  input[type=time],
  input[type=date],
  input[type=datetime-local],
  input[type=tel],
  input[type=number],
  input[type=search],
  input[type=file],
  textarea, .wpcf7-form-control:not(.wpcf7-checkbox):not(.wpcf7-radio) {
    font-size: 1.6rem;
    height: 4.8rem;
    line-height: 4.8rem;
  }
}

::-ms-reveal {
  display: none !important;
}

input[type=file] {
  text-indent: 0;
  line-height: 1;
  color: #506084;
}

textarea {
  padding: 1.4rem;
  overflow: auto;
  resize: none;
  line-height: 1.1;
  min-height: 13rem;
}

.auto-width {
  width: auto;
}

input[type=text]::-ms-clear {
  display: none;
}

label {
  margin-bottom: .5rem;
}

label.is-error {
  display: block;
  color: #e3725b;
  margin-top: 5px;
  font-weight: normal;
  font-size: 1.4rem;
  line-height: 1;
}

.label {
  font-size: 1.4rem;
  line-height: 1;
  display: block;
  margin-bottom: .5rem;
}

.select-wrp {
  position: relative;
}

.select-wrp:before {
  content: '';
  content: "\e901";
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  font-size: 1.3rem;
  color: #000;
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: middle;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

[dir="ltr"] .select-wrp:before {
  left: auto;
  right: 1rem;
}

.ltr .select-wrp:before {
  left: auto;
  right: 1rem;
}

.select-wrp select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 100%;
  height: 6rem;
  background-color: #fff;
  border: 1px solid #000;
  border-radius: 0px;
  outline: none;
  line-height: 6rem;
  color: #2C1C21;
  font-size: 1.5rem;
  font-weight: 400;
  padding: 0 1.2rem;
  padding-left: 4rem;
}

[dir="ltr"] .select-wrp select {
  padding-left: 1.2rem;
  padding-right: 4rem;
}

.ltr .select-wrp select {
  padding-left: 1.2rem;
  padding-right: 4rem;
}

.app-callback-form .btn, .app-callback-form .gform_wrapper .gform_button.button, .gform_wrapper .app-callback-form .gform_button.button, .app-callback-form .btn-flat, .app-callback-form .b-city-list a, .b-city-list .app-callback-form a {
  width: 100%;
}

form label {
  font-weight: 600;
}

form .row-field + .row-field {
  margin-top: 2rem;
}

form .row-field--btn .btn, form .row-field--btn .gform_wrapper .gform_button.button, .gform_wrapper form .row-field--btn .gform_button.button, form .row-field--btn .btn-flat, form .row-field--btn .b-city-list a, .b-city-list form .row-field--btn a, form .row-field--btn .button {
  font-size: 3rem;
}

@media print, screen and (max-width: 39.99875em) {
  form .row-field--btn .btn, form .row-field--btn .gform_wrapper .gform_button.button, .gform_wrapper form .row-field--btn .gform_button.button, form .row-field--btn .btn-flat, form .row-field--btn .b-city-list a, .b-city-list form .row-field--btn a, form .row-field--btn .button {
    font-size: 2rem;
  }
}

form .error-message {
  font-size: 1.6rem;
  color: #e3725b;
}

.gform_wrapper .gform_button.button {
  font-size: 3rem;
}

@media print, screen and (max-width: 39.99875em) {
  .gform_wrapper .gform_button.button {
    font-size: 2rem;
  }
}

.menu-icon, .menu-icon--aside {
  display: inline-block;
  width: 30px;
  height: 25px;
  border: none;
  background: transparent;
  position: relative;
  cursor: pointer;
}

.menu-is-open .menu-icon, .menu-is-open .menu-icon--aside {
  z-index: 200;
  color: #fff;
}

.menu-is-open .menu-icon.burger span, .menu-is-open .menu-icon.burger:before, .menu-is-open .menu-icon.burger:after, .menu-is-open .menu-icon--aside.burger span, .menu-is-open .menu-icon--aside.burger:before, .menu-is-open .menu-icon--aside.burger:after {
  color: #fff;
}

@media screen and (min-width: 1024px) {
  .menu-icon:hover, .menu-icon--aside:hover {
    color: #fff;
  }
  .menu-icon:hover.burger span, .menu-icon:hover.burger:before, .menu-icon:hover.burger:after, .menu-icon--aside:hover.burger span, .menu-icon--aside:hover.burger:before, .menu-icon--aside:hover.burger:after {
    color: #fff;
  }
}

.menu-icon.large, .menu-icon--aside.large {
  width: 2rem;
  height: 1.8rem;
}

.menu-icon:focus, .menu-icon--aside:focus {
  outline: none;
}

.menu-icon.burger:after, .menu-icon.burger:before,
.menu-icon.burger span, .menu-icon--aside.burger:after, .menu-icon--aside.burger:before,
.menu-icon--aside.burger span {
  color: #fff;
  width: 100%;
  height: 3px;
  border-radius: 0px;
  position: absolute;
  display: block;
  background: currentColor;
}

.menu-icon.burger:after, .menu-icon.burger:before, .menu-icon--aside.burger:after, .menu-icon--aside.burger:before {
  content: "";
  transition: 0.3s width 0.4s;
}

.menu-icon.burger:after, .menu-icon--aside.burger:after {
  top: 0;
  left: 0;
  margin-top: 0;
}

.menu-icon.burger:before, .menu-icon--aside.burger:before {
  bottom: 0;
  right: 0;
  margin-bottom: 0;
}

.menu-icon.burger span, .menu-icon--aside.burger span {
  top: 50%;
  margin-top: -1.5px;
  transition: transform 0.3s;
}

.menu-icon.burger span:before, .menu-icon--aside.burger span:before {
  content: "";
  background: currentColor;
  width: 100%;
  height: 3px;
  border-radius: 0px;
  position: absolute;
  left: 0;
  transition: transform 0.3s;
}

.menu-icon.burger.on:after, .menu-icon--aside.burger.on:after {
  transition: all 0.2s;
  width: 0;
  left: 0;
}

.menu-icon.burger.on:before, .menu-icon--aside.burger.on:before {
  transition: all 0.2s;
  width: 0;
  right: 0;
}

.menu-icon.burger.on span, .menu-icon--aside.burger.on span {
  transform: rotate(45deg);
  transition: 0.3s transform 0.4s;
}

.menu-icon.burger.on span:before, .menu-icon--aside.burger.on span:before {
  transform: rotate(-90deg);
  transition: 0.3s transform 0.4s;
}

.b-sidebar-menu__title {
  border-radius: 5px;
  background: #000;
  color: #fff;
  font-weight: bold;
  margin-bottom: 2px;
  text-align: center;
  font-size: 2rem;
  position: relative;
  overflow: hidden;
}

.b-sidebar-menu__title.is-active {
  background: #2C1C21;
  color: #2C1C21;
}

.b-sidebar-menu__title > a {
  text-decoration: none;
  padding: 1.8rem 1rem;
  display: block;
  color: currentColor;
}

.b-sidebar-menu__title > a:hover {
  text-decoration: none;
}

.b-sidebar-menu__content {
  padding: 2rem;
}

.b-sidebar-menu__nav li {
  font-size: 1.5rem;
  font-weight: 400;
}

.b-sidebar-menu__nav li:not(:last-of-type) {
  margin-bottom: 1rem;
}

.b-sidebar-menu__nav .is-active {
  font-weight: bold;
}

.navigation {
  font-size: 1.5rem;
}

.navigation .screen-reader-text {
  display: inline-block;
  vertical-align: middle;
  font-size: 1.5rem;
  font-weight: bold;
  margin: 0;
}

.navigation .nav-links {
  margin-left: 5px;
  margin-right: 5px;
  display: inline-block;
  vertical-align: middle;
}

.navigation .page-numbers {
  padding-left: .4rem;
  padding-right: .4rem;
}

.navigation .current {
  font-weight: bold;
}

.close-button {
  display: block;
  margin-left: auto;
  position: relative;
  line-height: 1;
  font-size: 0;
  width: 5.1rem;
  height: 5.1rem;
  margin-bottom: 2rem;
  transition: opacity .3s ease, background .3s ease;
}

.close-button:before, .close-button:after {
  content: '';
  position: absolute;
  top: 0;
  left: 2.75rem;
  height: 5.3rem;
  width: 0.4rem;
  background-color: #2C1C21;
}

.close-button:before {
  transform: rotate(45deg);
}

.close-button:after {
  transform: rotate(-45deg);
}

.close-button:hover {
  opacity: .5;
}

html.is-reveal-open body {
  height: auto;
}

.reveal-overlay {
  background: rgba(0, 0, 0, 0.8);
}

.reveal {
  outline: none;
  padding: 4.5rem;
  max-width: 137rem;
  width: 100%;
  background: #FFFFFF;
  background-color: #FCF9E8;
  border: 6px solid #2C1C21;
  border-radius: 0rem;
}

.reveal.reveal-transparent {
  background: transparent;
}

.reveal.reveal-small {
  max-width: 70rem;
}

.reveal__close {
  box-sizing: border-box;
  width: 6.2rem;
  height: 6.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 50;
  color: #000;
}

.reveal__close:hover {
  opacity: .8;
  box-shadow: none;
  border: none;
}

.reveal__close svg {
  width: 2.2rem;
  height: 2.2rem;
}

.reveal__close svg path {
  fill: currentColor;
  stroke: currentColor;
}

.reveal .close-button {
  display: block;
  margin-left: auto;
  line-height: 1;
  font-size: 0;
  width: 5.1rem;
  height: 5.1rem;
  margin-bottom: 2rem;
  transition: opacity .3s ease, background .3s ease;
}

.reveal .close-button:before, .reveal .close-button:after {
  content: '';
  position: absolute;
  top: 0;
  left: 2.75rem;
  height: 5.3rem;
  width: 0.4rem;
  background-color: #2C1C21;
}

.reveal .close-button:before {
  transform: rotate(45deg);
}

.reveal .close-button:after {
  transform: rotate(-45deg);
}

.reveal .close-button:hover {
  opacity: .5;
}

.reveal .modal-header {
  display: flex;
}

.reveal .modal-body {
  padding-top: 3rem;
}

.reveal .modal-title {
  font-size: 3rem;
  margin-bottom: 2.5rem;
}

.reveal .modal-title .article-title {
  margin-bottom: 0;
}

.reveal .modal-footer {
  margin-top: 2.5rem;
}

.reveal .modal-footer .btn, .reveal .modal-footer .gform_wrapper .gform_button.button, .gform_wrapper .reveal .modal-footer .gform_button.button, .reveal .modal-footer .btn-flat, .reveal .modal-footer .b-city-list a, .b-city-list .reveal .modal-footer a {
  min-width: 24rem;
}

.reveal iframe {
  width: 100%;
  max-width: 100%;
}

.reveal video {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
}

.reveal .responsive-embed {
  background-color: #000;
  background: #ccc url(../img/common/loader.svg) 50% 50% no-repeat;
  background-size: 15rem auto;
}

.reveal.reveal-info iframe {
  min-height: 69vh;
}

.reveal.reveal-video {
  background: transparent;
  background-size: contain;
  padding: 0;
}

.reveal.reveal-video .close-button:before, .reveal.reveal-video .close-button:after {
  background-color: #fff;
}

.reveal.reveal-video .modal-body {
  line-height: 0;
}

@media print, screen and (max-width: 39.99875em) {
  .reveal {
    padding: 50px 40px;
  }
  .reveal.reveal-info {
    line-height: 1;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0;
  }
  .reveal.reveal-info .modal-body {
    padding-top: 0;
    line-height: 0;
  }
  .reveal.reveal-info iframe {
    line-height: 1;
    height: calc(100vh - 50px - 12px);
  }
  .reveal.reveal-info .close-button {
    display: inline-block;
    margin-left: auto;
    line-height: 1;
    font-size: 0;
    width: 3rem;
    height: 3rem;
    transition: opacity .3s ease, background .3s ease;
  }
  .reveal.reveal-info .close-button:before, .reveal.reveal-info .close-button:after {
    content: '';
    position: absolute;
    top: 0;
    left: 1.6rem;
    height: 3.1rem;
    width: 0.2rem;
    background-color: #2C1C21;
  }
  .reveal.reveal-info .close-button:before {
    transform: rotate(45deg);
  }
  .reveal.reveal-info .close-button:after {
    transform: rotate(-45deg);
  }
  .reveal.reveal-info .close-button:hover {
    opacity: .5;
  }
  .reveal .modal-footer .btn, .reveal .modal-footer .gform_wrapper .gform_button.button, .gform_wrapper .reveal .modal-footer .gform_button.button, .reveal .modal-footer .btn-flat, .reveal .modal-footer .b-city-list a, .b-city-list .reveal .modal-footer a {
    min-width: 235px;
  }
}

.show-on-en {
  display: none;
}

[dir="ltr"] .show-on-en {
  display: block;
}

.show-on-he {
  display: none;
}

[dir="rtl"] .show-on-he {
  display: block;
}

.section, .s-section {
  width: 100%;
  position: relative;
  padding-top: 10rem;
  padding-bottom: 10rem;
}

@media print, screen and (max-width: 47.99875em) {
  .section, .s-section {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .section, .s-section {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}

.section.m-grey, .s-section.m-grey {
  background-color: #E5E5E5;
}

.section.m-cyan, .s-section.m-cyan {
  background-color: #36D1DC;
}

.section.m-yellow, .s-section.m-yellow {
  background-color: #ECD108;
}

.section.h100, .s-section.h100 {
  min-height: 100vh;
}

section.m-grey {
  background-color: #E5E5E5;
}

section.m-cyan {
  background-color: #36D1DC;
}

section.m-yellow {
  background-color: #ECD108;
}

.section-slider, .section-main-slider, .section-hero {
  width: 100%;
}

.section-slider .bg-img, .section-main-slider .bg-img, .section-hero .bg-img {
  background-size: cover;
}

.section-slider .bg-img img, .section-main-slider .bg-img img, .section-hero .bg-img img {
  opacity: 0;
  visibility: hidden;
}

.section-bg {
  position: relative;
}

.section-bg .bg-img {
  background-position: top center;
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

.section-bg .bg-img.bg-parallax {
  transform: scale(1.1);
  background-position: center center;
}

.section-bg .bg-img--fixed {
  background-attachment: fixed;
}

.section-bg .bg-img img {
  opacity: 0;
  visibility: hidden;
}

.section-bg .subtitle {
  color: #fff;
}

.section-bg .container, .section-bg .section-title, .section-bg .b-footer__title, .section-bg .b-box-about__title, .section-bg .row {
  position: relative;
}

.video-wrap.bg-img {
  background-position: top center;
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

.video-wrap.bg-img img {
  opacity: 0;
  visibility: hidden;
}

.row--section {
  margin-top: 3rem;
}

.row--list {
  margin-bottom: -1.5rem;
}

.row--list .column {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

@media print, screen and (max-width: 89.99875em) {
  .stacked-on-large > .column + .column {
    padding-top: 3rem;
  }
}

@media print, screen and (max-width: 63.99875em) {
  .stacked-on-tablet > .column + .column {
    padding-top: 3rem;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .stacked-on-medium > .column + .column {
    padding-top: 3rem;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .stacked-on-small > .column + .column {
    padding-top: 3rem;
  }
}

._equal-column {
  align-items: stretch;
}

._equal-column .column {
  height: auto;
}

._equal-column .column > div {
  height: 100%;
}

._loader {
  background-color: #ededed;
  background-image: url(../img/common/loader.svg);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: auto 12rem;
}

._header-offset {
  padding-top: 19rem;
}

@media screen and (max-width: 767px) {
  ._header-offset {
    padding-top: 82px;
  }
}

.s-hero {
  background: #2C1C21;
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
}

.s-hero._header-offset {
  padding-top: 14rem;
}

.s-hero__content {
  padding-top: 6rem;
  padding-left: 3rem;
}

.s-hero__event {
  display: flex;
  flex-direction: column;
  align-items: baseline;
}

.s-hero__event-itm {
  position: relative;
  min-width: 45rem;
  font-size: 3rem;
  text-align: center;
  display: inline-block;
  background: #FCF9E8;
  border: 6px solid #2C1C21;
  padding: .3em .6em .3em;
  color: #2C1C21;
}

.s-hero__event-itm:link:hover {
  color: currentColor;
}

.s-hero__event-itm:link:hover {
  text-decoration: none;
}

.s-hero__event-itm.text--pink {
  color: #2C1C21;
  background: #EDA298;
  background: var(--rock-color);
}

.s-hero__event-itm.text--pink:hover {
  box-shadow: 0 4px 15px 0px rgba(237, 162, 152, 0.7);
}

.s-hero__event-itm.text--green {
  color: #2C1C21;
  background: #56BF72;
  background: var(--jazz-color);
}

.s-hero__event-itm.text--green:hover {
  box-shadow: 0 4px 15px 0px rgba(86, 191, 114, 0.7);
}

.s-hero__event-itm a {
  color: currentColor;
}

.s-hero__event-itm a:hover {
  text-decoration: none;
}

.s-hero__event-itm + .s-hero__event-itm {
  margin-top: 1.4rem;
}

@media print, screen and (max-width: 47.99875em) {
  .s-hero {
    padding-left: 3rem;
    padding-right: 3rem;
  }
  .s-hero__content {
    padding-top: 0rem;
  }
  .s-hero__event {
    color: #FCF9E8;
    align-items: center;
  }
  .s-hero__event-row {
    width: 100%;
    flex: 1;
    display: flex;
    justify-content: center;
    flex-direction: column;
    color: #FCF9E8;
  }
  .s-hero .event-date {
    font-family: "Mandatory", "Roboto", sans-serif;
    font-weight: 400;
    margin-top: 1rem;
    font-size: 2.4rem;
    font-size: 24px;
    color: #FCF9E8;
    text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.25);
  }
  .s-hero__event-itm {
    font-size: 2.4rem;
    font-size: 24px;
    border-width: 4px;
    min-width: 32.7rem;
    max-width: 100%;
  }
}

.s-hero-pic {
  min-height: 70vh;
  height: 77rem;
}

[dir="rtl"] .s-hero-pic__bg {
  transform: scaleX(-1);
}

.rtl .s-hero-pic__bg {
  transform: scaleX(-1);
}

@media screen and (max-width: 767px) {
  .s-hero-pic {
    min-height: 48rem;
    height: 48rem;
  }
}

.s-hero + section[class^="s-"],
.s-hero + .section {
  border-top: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .s-hero + section[class^="s-"],
  .s-hero + .section {
    border-top-width: 4px;
  }
}

._bg-content {
  background-color: #FFF4D8;
  background-image: url(../img/common/bg-content__b.png), url(../img/common/bg-content__cloud.png);
  background-position: 50% 100%, 0% 10%;
  background-size: 100%, 95% auto;
  background-repeat: no-repeat, no-repeat;
}

._bg-content._no-bg {
  background-image: none;
}

._bg-person, .s-main__content .s-content._bg-person:after {
  background-color: #FFF4D8;
  background-color: #FCF9E8;
  background-image: url(../img/common/bg__person.png);
  background-size: 100% auto;
  background-repeat: repeat-y;
}

._bg-person._no-bg, .s-main__content ._no-bg.s-content._bg-person:after {
  background-image: none;
}

.s-artist__hero {
  padding: 7rem 6rem;
}

@media print, screen and (max-width: 39.99875em) {
  .s-artist__hero {
    padding: 4rem 2rem 6rem;
  }
}

.s-main__content {
  position: relative;
  background: #FFF4D8;
  border: 6px solid #2C1C21;
}

.s-main__content .s-content-home {
  background-color: #FCF9E8;
  background-image: url(../img/common/about-bg-footer.png), url(../img/common/about-bg-top.png);
  background-position: 50% 100%, 100% 1%;
  background-size: 100%, 100% auto;
  background-repeat: no-repeat, no-repeat;
  padding-bottom: 5rem;
  padding-top: 4rem;
}

.s-main__content .s-content-home._no-bg {
  background-image: none;
}

.s-main__content .s-content-home._bg-person {
  background-color: #FFF4D8;
  background-color: #FCF9E8;
  background-image: url(../img/common/bg__person.png);
  background-position: 50% 0%;
  background-size: 100% auto;
  background-repeat: repeat-y;
}

.s-main__content .s-content-home._bg-person._no-bg {
  background-image: none;
}

.s-main__content .s-content-home._bg-clouds {
  background-color: #FFF4D8;
  background-color: #FCF9E8;
  background-image: url(../img/common/about-bg-top.png);
  background-position: 50% 0%;
  background-size: 100% auto;
  background-repeat: repeat-y;
}

.s-main__content .s-content-home._bg-clouds._no-bg {
  background-image: none;
}

.s-main__content .s-content-home._bg-clouds.s-content-home--nav {
  padding-top: 4rem;
}

.s-main__content .s-content-home--guests {
  background-position: 50% 100%, 100% 0;
  background-repeat: no-repeat, repeat-y;
}

.s-main__content .s-content-home--artist {
  padding-top: 0;
}

.s-main__content .s-content-home--nav {
  padding-top: 0;
}

.s-main__content .s-content-home--nav:not([class*="_bg-"]) {
  background-image: none;
}

@media print, screen and (max-width: 47.99875em) {
  .s-main__content .s-content-home {
    background-size: 680px auto, 1068px auto;
    background-position: 50% 100%, 52% 0%;
  }
}

.s-main__content .s-content._bg-person {
  z-index: 1;
  background: none;
  position: relative;
}

.s-main__content .s-content._bg-person:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  top: 20rem;
  bottom: 20rem;
  pointer-events: none;
  z-index: -1;
}

.s-main__content > section + section {
  border-top: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .s-main__content > section + section {
    border-top-width: 4px;
  }
}

.s-main__content .section {
  padding: 7rem 6rem;
}

@media print, screen and (max-width: 39.99875em) {
  .s-main__content .section {
    padding: 4rem 2rem 6rem;
  }
}

.s-main__content .s-form {
  line-height: 1;
  padding: 7rem 6rem;
}

.s-main__content .s-form__body {
  position: relative;
  border: 4px solid #000;
  max-height: 70vh;
  height: 79rem;
}

.s-main__content .s-form__body iframe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  max-width: 100%;
  width: 100%;
  height: 100%;
}

.s-main__content .s-form__body iframe::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  border-radius: 1rem;
  background-color: #F5F5F5;
}

.s-main__content .s-form__body iframe::-webkit-scrollbar {
  -webkit-overflow-scrolling: touch;
  width: 1rem;
  height: 1rem;
  border-radius: 1rem;
  background-color: #F5F5F5;
}

.s-main__content .s-form__body iframe::-webkit-scrollbar-thumb {
  border-radius: 1rem;
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  background-color: #555;
}

.s-main__content .s-form__body iframe::-webkit-scrollbar-thumb:vertical {
  border-radius: 1rem;
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
  background-color: #555;
}

.s-main__content .s-form__body iframe::-webkit-scrollbar-corner {
  border-radius: 1rem;
}

.s-main__content .s-form__body iframe::-webkit-resizer {
  display: none;
}

@media print, screen and (max-width: 63.99875em) {
  .s-main__content {
    border-width: 4px;
  }
}

@media screen and (max-width: 767px) {
  .s-main__content {
    border-left: 0;
    border-right: 0;
  }
}

@media screen and (max-width: 425px) {
  .s-main__content {
    border-left: 0;
    border-right: 0;
  }
}

.responsive-embed {
  background: #D8D8D8;
}

.s-video {
  background: #D8D8D8;
}

.s-main__content .s-video {
  border-top: 6px solid #2C1C21;
  border-bottom: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .s-main__content .s-video {
    border-top-width: 4px;
    border-bottom-width: 4px;
  }
}

.s-content__btn .row .text-right .btn, .s-content__btn .row .text-right .gform_wrapper .gform_button.button, .gform_wrapper .s-content__btn .row .text-right .gform_button.button, .s-content__btn .row .text-right .btn-flat, .s-content__btn .row .text-right .b-city-list a, .b-city-list .s-content__btn .row .text-right a {
  margin-left: auto;
}

.s-content__nav {
  border-bottom: 6px solid #2C1C21;
  padding: 5rem 3rem 1.3rem;
  background: #E5B16A;
  display: flex;
  align-items: center;
}

@media print, screen and (max-width: 63.99875em) {
  .s-content__nav {
    border-bottom-width: 4px;
  }
}

.s-content__nav-arrow {
  font-size: 2.4rem;
  text-transform: uppercase;
  width: 20rem;
  flex: 0 0 25%;
  max-width: 25%;
}

.s-content__nav-arrow a {
  color: currentColor;
}

.s-content__nav-arrow a:hover {
  text-decoration: none;
}

.s-content__nav-arrow span {
  padding-left: .25em;
  padding-right: .25em;
}

.s-content__nav-arrow svg, .s-content__nav-arrow [class^="svg-inline"] {
  display: inline-block;
  vertical-align: middle;
  width: 1.5em;
  height: 1.5em;
}

.s-content__nav .s-content__nav-arrow ~ .s-content__nav-arrow {
  text-align: right;
}

[dir="rtl"] .s-content__nav .s-content__nav-arrow ~ .s-content__nav-arrow {
  text-align: left;
}

.rtl .s-content__nav .s-content__nav-arrow ~ .s-content__nav-arrow {
  text-align: left;
}

.s-content__nav-arrow-link {
  transition: .2s ease;
  color: currentColor;
  display: inline-flex;
  align-items: center;
}

.s-content__nav-arrow-link:hover {
  opacity: .7;
}

.s-content__nav-arrow-link:hover {
  text-decoration: none;
}

[dir="rtl"] .s-content__nav-arrow-link svg, [dir="rtl"] .s-content__nav-arrow-link i, [dir="rtl"] .s-content__nav-arrow-link .icon {
  transform: scaleX(-1);
}

.rtl .s-content__nav-arrow-link svg, .rtl .s-content__nav-arrow-link i, .rtl .s-content__nav-arrow-link .icon {
  transform: scaleX(-1);
}

.s-content__nav-title {
  margin-left: auto;
  margin-right: auto;
  font-size: 4.5rem;
  margin-top: -.05em;
}

.s-content__section + .s-content__section {
  margin-top: 5rem;
}

.s-content__section .s-content__body {
  padding-top: 2rem;
}

@media print, screen and (max-width: 63.99875em) {
  .s-content__btn .row .column {
    text-align: center;
  }
  .s-content__btn .row .column + .column {
    margin-top: 3rem;
  }
  .s-content__btn .row .text-right {
    text-align: center;
  }
  .s-content__btn .row .btn.btn--group, .s-content__btn .row .gform_wrapper .btn--group.gform_button.button, .gform_wrapper .s-content__btn .row .btn--group.gform_button.button, .s-content__btn .row .btn--group.btn-flat, .s-content__btn .row .b-city-list a.btn--group, .b-city-list .s-content__btn .row a.btn--group {
    max-width: 52.4rem;
    margin-left: auto;
    margin-right: auto;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .s-content__nav {
    flex-wrap: wrap;
    padding-top: 3rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .s-content__nav-arrow {
    font-size: 2.2rem;
    order: -1;
    max-width: 50%;
    flex: 0 0 50%;
  }
  .s-content__nav-arrow ~ .s-content__nav-arrow {
    margin-left: auto;
    margin-inline-start: auto;
  }
  .s-content__nav-title {
    flex: 0 0 100%;
    text-align: center;
    margin-top: 1rem;
    margin-bottom: 1rem;
  }
}

.s-about {
  background: #FCF9E8;
}

.s-about .section-title, .s-about .b-footer__title, .s-about .b-box-about__title {
  margin-bottom: 6rem;
  letter-spacing: 0.03em;
}

.s-about .section-title:last-of-type, .s-about .b-footer__title:last-of-type, .s-about .b-box-about__title:last-of-type {
  margin-bottom: 0;
}

.s-about p {
  font-size: 1.8rem;
}

.s-notice {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.s-notice__title {
  line-height: 2;
  font-size: 4.5rem;
}

.s-notice__title + .s-notice__title {
  margin-top: 4rem;
}

@media print, screen and (min-width: 64em) {
  .rtl .large-offset-1, [dir="rtl"] .large-offset-1 {
    margin-right: 8.33333%;
    margin-left: initial;
  }
}

.s-content__header {
  display: flex;
  border-bottom: 6px solid transparent;
  padding-bottom: 1rem;
  margin-bottom: 5rem;
}

.s-content__header-title {
  margin-inline-end: auto;
  font-size: 4.5rem;
}

.s-content__header-btn .btn, .s-content__header-btn .gform_wrapper .gform_button.button, .gform_wrapper .s-content__header-btn .gform_button.button, .s-content__header-btn .btn-flat, .s-content__header-btn .b-city-list a, .b-city-list .s-content__header-btn a {
  min-width: 13.8rem;
}

.s-content__header._border {
  border-bottom: 6px solid #2C1C21;
  padding-bottom: 2rem;
}

.s-content__body {
  font-size: 1.8rem;
}

.s-content__body p {
  font-size: 100%;
}

@media print, screen and (max-width: 63.99875em) {
  .s-content__header {
    padding-bottom: 1rem;
    margin-bottom: 0;
  }
  .s-content__header._border {
    padding-bottom: 0rem;
    margin-bottom: 2.5rem;
    border-width: 4px;
  }
}

.s-artist__hero {
  position: relative;
  z-index: 2;
}

.s-artist__hero .bg-img {
  z-index: -1;
}

.s-artist__hero .bg-img:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(44, 28, 33, 0.8) 0%, rgba(64, 107, 72, 0.8) 100%);
}

.s-artist__hero-header {
  position: relative;
  color: #FCF9E8;
  padding-bottom: 4rem;
  display: flex;
  font-size: 2.4rem;
  font-weight: 700;
}

.s-artist__hero-header > *:first-of-type {
  margin-right: auto;
}

.s-artist__hero-pic {
  border: 6px solid #E5B16A;
}

@media print, screen and (max-width: 63.99875em) {
  .s-artist__hero-pic {
    border-width: 4px;
  }
}

.s-artist__video {
  padding-top: 4rem;
  position: relative;
}

.s-artist__video .responsive-embed + .responsive-embed {
  margin-top: 7rem;
}

@media print, screen and (max-width: 39.99875em) {
  .s-artist__hero-header {
    flex-wrap: wrap;
    padding-bottom: 2rem;
    font-size: 2rem;
    justify-content: center;
  }
  .s-artist__hero-header > *:first-of-type {
    margin: 0;
  }
  .s-artist__hero-header > * + * {
    margin-top: .5rem;
  }
  .s-artist__video .responsive-embed + .responsive-embed {
    margin-top: 3rem;
  }
}

.s-sticky {
  position: fixed;
  width: 100%;
  bottom: 0;
  left: 0;
  z-index: 50;
  padding-bottom: 1rem;
}

.s-sticky:after {
  content: '';
  z-index: -1;
  pointer-events: none;
  width: 100%;
  height: 135%;
  position: absolute;
  bottom: 0;
  left: 0;
  background: linear-gradient(0deg, #2C1C21 0%, rgba(44, 28, 33, 0.9) 7%, rgba(44, 28, 33, 0.6) 47%, rgba(44, 28, 33, 0) 100%);
}

.s-sticky__btn .btn, .s-sticky__btn .gform_wrapper .gform_button.button, .gform_wrapper .s-sticky__btn .gform_button.button, .s-sticky__btn .btn-flat, .s-sticky__btn .b-city-list a, .b-city-list .s-sticky__btn a {
  border-width: 4px;
  padding-top: .13em;
  padding-bottom: .2em;
}

.s-special__header {
  color: #fff;
  text-transform: uppercase;
  padding: 5rem 1rem;
  background: linear-gradient(to right, #1d1d1b 0%, #f05658 100%);
}

.s-special__title {
  font-size: 7rem;
  line-height: 1;
}

.s-special__title:last-of-type {
  margin-bottom: 0;
}

.s-special__body {
  text-transform: uppercase;
  position: relative;
  display: flex;
  overflow: hidden;
  border-top: 6px solid #2C1C21;
  border-bottom: 6px solid #2C1C21;
}

@media print, screen and (max-width: 89.99875em) {
  .s-special__body {
    border-width: 4px;
  }
}

.s-special__itm {
  transition: opacity .2s ease, background-color .2s ease;
  position: relative;
  display: flex;
  align-items: center;
  flex: 0 0 50%;
  max-width: 50%;
  min-width: 0;
  padding: 3.6rem 1.8rem;
  font-size: 2.2rem;
  font-size: 3.3rem;
}

.s-special__itm:hover {
  opacity: 0.9;
}

.s-special__itm:not(:last-child) {
  border-inline-end: 6px solid #2C1C21;
}

@media print, screen and (max-width: 89.99875em) {
  .s-special__itm:not(:last-child) {
    border-width: 4px;
  }
}

.s-special__itm-txt a {
  color: #fff;
  text-decoration: underline;
}

.s-special__itm-txt a:hover, .s-special__itm-txt a:focus {
  text-decoration: none;
}

.s-special__itm-pic {
  display: flex;
  flex: 0 1 auto;
  flex-direction: column;
  align-items: flex-end;
}

.s-special .itm-event {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #ffffff;
  border: 2px solid #2C1C21;
  border-radius: 2rem;
  text-transform: uppercase;
  font-size: 3.6rem;
  min-width: 3.6em;
  padding: 1.4rem 1rem;
  margin-inline-end: 1.5em;
}

.s-special .itm-event:first-of-type {
  z-index: 1;
}

.s-special .itm-event img {
  margin-left: .5em;
  width: 6rem;
  max-width: 1.3em;
}

.s-special .itm-event + .itm-event {
  z-index: 0;
  margin-inline-end: 0;
  margin-top: -1em;
}

.s-special ._red {
  background: #d0096f;
}

.s-special ._yellow {
  background: #e4ca0a;
}

.s-special ._red2 {
  background: #d0096f;
}

.s-special ._yellow2 {
  background: #e4ca0a;
}

@media print, screen and (max-width: 39.99875em) {
  .s-special__header {
    padding: 3rem 1rem;
  }
  .s-special__title {
    font-size: 3.4rem;
  }
  .s-special__title br {
    display: none;
  }
  .s-special__body {
    flex-wrap: wrap;
  }
  .s-special__itm {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
    font-size: 2.2rem;
    border: none;
  }
  .s-special__itm:not(:last-child) {
    border: none;
  }
  .s-special__itm-txt {
    padding-inline-end: 1rem;
  }
  .s-special__itm + .s-special__itm {
    border-top: 4px solid #2C1C21;
  }
  .s-special .itm-event {
    font-size: 2.2rem;
    font-size: 1.8rem;
  }
}

.responsive-embed > img, .responsive-embed > .responsive, .responsive-embed > iframe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.responsive-embed > iframe {
  object-fit: fill;
}

.b-social-inline {
  font-size: 0;
}

.b-social-inline li {
  padding: 0 7px;
}

.b-social-inline li a {
  transform: translateZ(0);
  display: block;
  transition: opacity .3s ease;
}

.b-social-inline li a:hover {
  opacity: .8;
}

.abs-link {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
}

.b-box-about {
  background: #FCF9E8;
  display: flex;
  flex-direction: column;
  position: relative;
  border: 4px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .b-box-about {
    border-width: 2px;
  }
}

.b-box-about._clouds {
  background-repeat: no-repeat;
  background-image: url(../img/common/clouds.jpg);
  background-size: contain;
  background-position: 50% 100%;
}

.b-box-about._cloud-1 {
  background-repeat: no-repeat;
  background-image: url(../img/common/clouds-1.jpg);
  background-size: contain;
  background-position: 50% 100%;
}

.b-box-about._cloud-2 {
  background-repeat: no-repeat;
  background-image: url(../img/common/clouds-2.jpg);
  background-size: contain;
  background-position: 50% 100%;
}

.b-box-about__title {
  margin-bottom: 0;
}

.b-box-about__bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  background-size: cover;
  background-position: 100% 50%;
}

[dir="rtl"] .b-box-about__bg {
  transform: scaleX(-1);
}

.rtl .b-box-about__bg {
  transform: scaleX(-1);
}

.b-box-about__pic {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 2.4rem 3rem 3.4rem;
  background-size: cover;
  background-position: 100% 50%;
}

.b-box-about__pic .b-box-about__title {
  top: .1em;
  position: relative;
}

.b-box-about__content {
  padding: 3.6rem 3rem 5rem;
  flex: 1;
}

.b-box-artist-list.row {
  margin-left: -4rem;
  margin-right: -4rem;
  margin-top: -1.5rem;
  margin-bottom: -1.5rem;
}

.b-box-artist-list > .column, .b-box-artist-list__itm {
  padding: 3.2rem 4rem;
}

@media print, screen and (max-width: 47.99875em) {
  .b-box-artist-list.row {
    margin-left: -10px;
    margin-right: -10px;
  }
  .b-box-artist-list > .column, .b-box-artist-list__itm {
    padding: 10px;
  }
}

.b-box-person-list.row {
  margin-left: -4rem;
  margin-right: -4rem;
  margin-top: -1.5rem;
  margin-bottom: -1.5rem;
}

@media screen and (max-width: 1439px) and (min-width: 1024px) {
  .b-box-person-list.row {
    margin-left: -2vw;
    margin-right: -2vw;
  }
}

.b-box-person-list > .column, .b-box-person-list__itm {
  padding: 3.2rem 4rem;
}

@media screen and (max-width: 1439px) and (min-width: 1024px) {
  .b-box-person-list > .column, .b-box-person-list__itm {
    padding-left: 2vw;
    padding-right: 2vw;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .b-box-person-list.row {
    margin-left: -10px;
    margin-right: -10px;
  }
  .b-box-person-list > .column, .b-box-person-list__itm {
    padding: 10px;
  }
}

.b-box-person {
  position: relative;
  border: 6px solid #2C1C21;
  line-height: 1;
  font-size: 0;
}

._green.b-box-person .b-box-artist__title {
  background: #56BF72;
  background: var(--jazz-color);
}

._red.b-box-person .b-box-artist__title {
  background: #EDA298;
  background: var(--rock-color);
}

.has-hover.b-box-person {
  position: relative;
}

.has-hover.b-box-person:hover .b-box-artist__title {
  background: #ECD108;
}

.has-hover.b-box-person .b-box-artist__title {
  transition: .2s ease;
}

.has-hover.b-box-person .b-box-artist__pic {
  overflow: hidden;
  font-size: 0;
  line-height: 0;
}

.has-hover.b-box-person .b-box-artist__pic img {
  transition: transform .3s ease-in-out;
  transform-origin: center;
}

.b-box-person .b-box-person__body {
  border-top: 6px solid #2C1C21;
  text-align: center;
  font-size: 1.8rem;
  font-family: "SimplerPro_V3", "Roboto", sans-serif;
  padding: 2rem 0rem 3rem;
  background: #e5b16a;
}

.b-box-person .b-box-person__title {
  font-size: 4.5rem;
  letter-spacing: 0;
  margin-bottom: .15em;
}

.b-box-person .b-box-person__title a {
  color: currentColor;
}

.b-box-person .b-box-person__txt {
  color: #fff;
  font-weight: 700;
}

.b-box-person .b-box-person__txt p {
  font-size: 100%;
}

@media print, screen and (max-width: 63.99875em) {
  .b-box-person {
    border-width: 4px;
  }
  .b-box-person .b-box-person__body {
    border-width: 4px;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .b-box-person .b-box-person__body {
    font-size: 1.4rem;
  }
  .b-box-person .b-box-person__title {
    font-size: 2.4rem;
  }
}

.b-box-person {
  display: flex;
  flex-direction: column;
}

.b-box-person__pic-wrp {
  position: relative;
}

.b-box-person__body {
  flex: 1;
}

.b-box-person__date {
  font-size: 1.8rem;
  font-weight: 700;
}

.b-box-person__event {
  border: 6px solid #2C1C21;
  background: #FCF9E8;
  padding: 1rem 1.3rem;
  position: absolute;
  z-index: 6;
  bottom: -3.8rem;
  left: 5%;
  right: 5%;
  font-size: 1.8rem;
  text-align: center;
}

@media print, screen and (max-width: 63.99875em) {
  .b-box-person__event {
    border-width: 4px;
  }
}

.b-box-person__event-title {
  font-weight: 700;
  line-height: 1.388;
  margin-bottom: .3em;
}

.b-box-person__header {
  border: 6px solid #2C1C21;
  background: #FCF9E8;
  padding: 1.2rem 1.3rem;
  position: absolute;
  z-index: 6;
  top: -2.5rem;
  left: 5%;
  right: 5%;
  display: flex;
  align-items: center;
}

@media print, screen and (max-width: 63.99875em) {
  .b-box-person__header {
    border-width: 4px;
  }
}

.b-box-person__header .img-flag {
  max-width: 3rem;
}

.b-box-person__header-icn {
  flex: 0 1 auto;
  display: inline-flex;
  align-items: center;
  font-size: 2.6rem;
  color: #2C1C21;
}

.b-box-person__header-icn svg {
  width: 1em;
  height: 1em;
}

.b-box-person__header-icn .fa-facebook-square {
  font-size: 108%;
}

.b-box-person__header-icn a {
  transition: .2s ease;
  line-height: 0;
  display: block;
  color: currentColor;
}

.b-box-person__header-icn a:hover {
  opacity: 0.7;
}

.b-box-person__header-icn a:hover {
  text-decoration: none;
}

.b-box-person__header-icn * + * {
  margin-inline-start: 1rem;
}

.b-box-person__txt {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.6rem;
}

.b-box-person--artist .b-box-person__body {
  padding-bottom: 2rem;
  padding-top: 4rem;
}

.b-box-person--artist .b-box-person__title {
  min-height: 9rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.b-box-person--artist .b-box-person__title:last-of-type {
  margin-bottom: -.5rem;
}

.b-box-person--event .b-box-person__body {
  background: #e5b16a;
}

.b-box-person--event .b-box-person__title {
  font-family: "SimplerPro_V3", "Roboto", sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.11;
}

.b-box-person--event .b-box-person__title + * {
  margin-top: 1rem;
}

.b-box-artist {
  border: 6px solid #2C1C21;
  line-height: 1;
  font-size: 0;
}

.b-box-artist._green .b-box-artist__title {
  background: #56BF72;
  background: var(--jazz-color);
}

.b-box-artist._red .b-box-artist__title {
  background: #EDA298;
  background: var(--rock-color);
}

.b-box-artist.has-hover {
  position: relative;
}

.b-box-artist.has-hover:hover .b-box-artist__title {
  background: #ECD108;
}

.b-box-artist.has-hover .b-box-artist__title {
  transition: .2s ease;
}

.b-box-artist.has-hover .b-box-artist__pic {
  overflow: hidden;
  font-size: 0;
  line-height: 0;
}

.b-box-artist.has-hover .b-box-artist__pic img {
  transition: transform .3s ease-in-out;
  transform-origin: center;
}

.b-box-artist--cover {
  position: relative;
}

.b-box-artist--cover .b-box-artist__body {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 1;
}

.b-box-artist__body {
  border-top: 6px solid #2C1C21;
  background: #EDA29B;
  text-align: center;
}

.b-box-artist__title {
  padding-top: .1em;
  padding-bottom: .2em;
  font-size: 3rem;
  background: #E5B16A;
}

@media print, screen and (max-width: 63.99875em) {
  .b-box-artist {
    border-width: 4px;
  }
  .b-box-artist__body {
    border-width: 4px;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .b-box-artist__title {
    font-size: 2.4rem;
  }
}

.b-schedule {
  border: 6px solid #2C1C21;
  background: #73BEA5;
}

.b-schedule__row {
  display: flex;
  flex-wrap: wrap;
}

.b-schedule__row:nth-child(1) {
  background: #E6EFDD;
}

.b-schedule__row:nth-child(2) {
  background: #CEE5D2;
}

.b-schedule__row:nth-child(3) {
  background: #B8DCC7;
}

.b-schedule__row:nth-child(4) {
  background: #A1D2BC;
}

.b-schedule__row:nth-child(5) {
  background: #8AC8B1;
}

.b-schedule__row:nth-child(6) {
  background: #73BEA5;
}

.b-schedule__row + .b-schedule__row {
  border-top: 6px solid #2C1C21;
}

.b-schedule__col {
  flex: 1;
  flex: 0 0 33.33%;
  padding: 6rem 4rem;
}

@media print, screen and (min-width: 48em) {
  .b-schedule__col.col-artist ~ .b-schedule__col {
    flex: 1;
  }
}

._col-4 .b-schedule__col {
  flex: 0 0 25%;
}

.b-schedule__col:not(:last-child) {
  border-inline-end: 6px solid #2C1C21;
}

.b-schedule .col-artist {
  color: #0D7150;
  font-size: 2.8rem;
}

.b-schedule .col-info {
  font-size: 1.6rem;
}

.b-schedule .col-info p {
  font-size: 100%;
}

.b-schedule .col-info h2, .b-schedule .col-info h3, .b-schedule .col-info h4 {
  margin-bottom: 1.8rem;
  font-weight: 400;
  font-size: 3rem;
  line-height: 1;
}

.b-schedule .col-info ul span {
  font-weight: 700;
}

.b-schedule .col-info ul li {
  line-height: 1.375;
  letter-spacing: 0;
}

.b-schedule .col-pic {
  padding: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media print, screen and (max-width: 63.99875em) {
  .b-schedule {
    border-width: 4px;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .b-schedule {
    border-left-width: 0px;
    border-right-width: 0px;
    margin-left: -2rem;
    margin-right: -2rem;
  }
  .b-schedule__col {
    border: none !important;
    flex: 0 0 100%;
    max-width: 100%;
    padding: 2rem;
    padding-bottom: 0;
  }
  .b-schedule__row {
    padding-bottom: 2rem;
    border-width: 4px !important;
  }
  .b-schedule .col-artist, .b-schedule .col-title {
    font-size: 30px;
    margin-bottom: 0rem;
  }
  .b-schedule .col-info {
    font-size: 16px;
  }
  .b-schedule .col-info ul span {
    margin-left: 1.5rem;
  }
}

.b-person {
  position: relative;
  display: flex;
  align-items: flex-start;
  font-size: 1.8rem;
}

.b-person__pic {
  flex: 0 0 50%;
  max-width: 50%;
  border: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .b-person__pic {
    border-width: 4px;
  }
}

.b-person__info > div + div {
  margin-top: 3rem;
}

.b-person__body {
  padding-inline-start: 6.35%;
  flex: 0 0 50%;
  max-width: 50%;
}

.b-person__body > * + * {
  margin-top: 3rem;
}

.b-person__title {
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: .14em;
}

.b-person__title + .b-person__subtitle {
  margin-bottom: 2rem;
  margin-top: 0;
}

.b-person__subtitle {
  font-size: 2.4rem;
  font-weight: 700;
}

.b-person__txt {
  font-size: 1.8rem;
}

.b-person__location {
  font-size: 2.4rem;
  font-weight: 700;
}

.b-person__location img {
  margin-right: 1rem;
}

.b-person__band {
  font-size: 1.8rem;
}

.b-person__band p {
  font-size: 100%;
}

.b-person__band-title {
  font-size: 3rem;
  margin-top: -.5em;
  margin-bottom: 2rem;
  padding-bottom: .3em;
  border-bottom: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .b-person__band-title {
    border-bottom-width: 4px;
  }
}

.b-person__band-list p {
  font-size: 100%;
  line-height: 1.1;
}

.b-person__band-list ul {
  margin-top: -1.5rem;
  margin-bottom: -1.5rem;
  column-count: 2;
  column-gap: 3rem;
  column-width: auto;
}

.b-person__band-list ul > li, .b-person__band-list ul > div {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
}

.b-person__band-list ul li {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.b-person__band .band-lbl {
  margin-bottom: .5rem;
}

.b-person__band .band-data {
  font-weight: 700;
}

.b-person__social-title {
  font-size: 3rem;
  margin-top: -.5em;
  margin-bottom: 2rem;
  padding-bottom: .3em;
  border-bottom: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .b-person__social-title {
    border-bottom-width: 4px;
  }
}

.b-person__social-list ul {
  margin-left: -1.5rem;
  margin-right: -1.5rem;
}

.b-person__social-list li {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.b-person__social-list svg, .b-person__social-list .icn {
  width: 1em;
  height: 1em;
  display: inline-block;
}

.b-person__social-list a {
  font-size: 4.4rem;
  color: #2C1C21;
}

.b-person__social-list a:hover {
  text-decoration: none;
}

.b-person__contact {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
  margin-bottom: 1.5rem;
  line-height: 1.3;
}

.b-person__contact .contact-lbl {
  margin-bottom: .5rem;
}

.b-person__contact .contact-data {
  font-weight: 700;
}

.b-person__contact-title {
  font-size: 3rem;
  margin-top: -.5em;
  margin-bottom: 2rem;
  padding-bottom: .3em;
  border-bottom: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .b-person__contact-title {
    border-bottom-width: 4px;
  }
}

.b-person__contact-list {
  font-size: 1.8rem;
}

.b-person__contact-list a {
  color: currentColor;
}

.b-person__contact-list p {
  font-size: 100%;
}

.b-person__contact-list li + li {
  margin-top: 1.5rem;
}

@media print, screen and (max-width: 47.99875em) {
  .b-person {
    flex-wrap: wrap;
  }
  .b-person__pic {
    flex: 0 0 40%;
    max-width: 40%;
  }
  .b-person__body {
    flex: 0 0 60%;
    max-width: 60%;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .b-person__pic, .b-person__body {
    flex: 0 0 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
  .b-person__body {
    padding-top: 2rem;
  }
  .b-person__body > * + * {
    margin-top: 2rem;
  }
  .b-person__title {
    font-size: 2.6rem;
  }
  .b-person__subtitle {
    font-size: 2rem;
  }
  .b-person__info {
    margin-bottom: 3rem;
  }
  .b-person__social-title {
    margin-top: 0;
  }
  .b-person__social-list a {
    font-size: 3.2rem;
  }
}

@media print, screen and (min-width: 48em) {
  .b-contact.row {
    padding-left: 0;
    padding-right: 0;
    margin-left: -4rem;
    margin-right: -4rem;
  }
  .b-contact.row > .column {
    padding-left: 4rem;
    padding-right: 4rem;
  }
}

.b-contact__form input, .b-contact__form textarea {
  background: none;
}

.b-contact__form input:focus, .b-contact__form input:active, .b-contact__form input:hover, .b-contact__form textarea:focus, .b-contact__form textarea:active, .b-contact__form textarea:hover {
  background: none;
}

.b-contact__form label {
  display: block;
  font-weight: 700;
  font-size: 2rem;
  margin-bottom: 1rem;
}

@media print, screen and (max-width: 39.99875em) {
  .b-contact__form label {
    font-size: 1.6rem;
    margin-bottom: .5rem;
  }
}

.b-contact__info {
  line-height: 1.3;
}

.b-artist-list__title, .artist-box {
  border: 6px solid currentColor;
  background: #FCF9E8;
  text-align: center;
  font-size: 4.5rem;
  padding: .45em .45em .5em;
}

@media print, screen and (max-width: 63.99875em) {
  .b-artist-list__title, .artist-box {
    border-width: 4px;
  }
}

@media screen and (max-width: 1280px) and (min-width: 1024px) {
  .b-artist-list__title, .artist-box {
    font-size: 4rem;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .b-artist-list__title, .artist-box {
    font-size: 3.5rem;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .b-artist-list__title, .artist-box {
    font-size: 3rem;
  }
}

.b-artist-list.row {
  padding-left: 0;
  padding-right: 0;
  margin-left: -4.5rem;
  margin-right: -4.5rem;
}

.b-artist-list.row > .column {
  padding-left: 4.5rem;
  padding-right: 4.5rem;
}

@media print, screen and (max-width: 47.99875em) {
  .b-artist-list.row {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }
  .b-artist-list.row > .column {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

.b-artist-list__title {
  border-color: #2C1C21;
}

.b-artist-list__body {
  padding-top: 5rem;
}

.b-artist-list__body .artist-box + .artist-box {
  margin-top: 5rem;
}

@media print, screen and (max-width: 47.99875em) {
  .b-artist-list__body {
    padding-top: 3rem;
  }
  .b-artist-list__body .artist-box {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }
  .b-artist-list__body .artist-box + .artist-box {
    margin-top: 3rem;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .b-artist-list__body {
    padding-top: 2rem;
    display: grid;
    grid-template-rows: 1fr 1fr;
    grid-template-columns: 1fr 1fr;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    grid-gap: 2vw;
  }
  .b-artist-list__body .artist-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    font-size: 2.4rem;
  }
  .b-artist-list__body .artist-box + .artist-box {
    margin-top: 2rem;
    margin: 0;
  }
}

.artist-box {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}

.artist-box._green, .artist-box._jazz {
  color: #56BF72;
  color: var(--jazz-color);
}

.artist-box._red, .artist-box._rock {
  color: #EDA298;
  color: var(--rock-color);
}

.artist-box > .artist-box__txt {
  margin-top: -.5em;
  margin-bottom: -.5em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 10rem;
}

.artist-box__txt {
  font-family: "SimplerPro_V3", "Roboto", sans-serif;
  font-size: 2.4rem;
}

.artist-box__txt strong {
  font-weight: 700;
}

.artist-box__txt * {
  font-family: "SimplerPro_V3", "Roboto", sans-serif;
}

.artist-box__txt p {
  font-size: 100%;
}

@media print, screen and (max-width: 39.99875em) {
  .artist-box {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }
  .artist-box__txt {
    font-size: 1.8rem;
  }
}

.b-map {
  overflow: hidden;
  position: relative;
  border: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .b-map {
    border-width: 4px;
  }
}

.b-box-event {
  position: relative;
  overflow: hidden;
  line-height: 1;
  border: 6px solid #2C1C21;
}

._jazz .b-box-event .b-box-event__list > * {
  background: rgba(var(--jazz-color-rgb), 0.65);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(1) {
  background: rgba(var(--jazz-color-rgb), 0.1);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(2) {
  background: rgba(var(--jazz-color-rgb), 0.15);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(3) {
  background: rgba(var(--jazz-color-rgb), 0.2);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(4) {
  background: rgba(var(--jazz-color-rgb), 0.25);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(5) {
  background: rgba(var(--jazz-color-rgb), 0.3);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(6) {
  background: rgba(var(--jazz-color-rgb), 0.35);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(7) {
  background: rgba(var(--jazz-color-rgb), 0.4);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(8) {
  background: rgba(var(--jazz-color-rgb), 0.45);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(9) {
  background: rgba(var(--jazz-color-rgb), 0.5);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(10) {
  background: rgba(var(--jazz-color-rgb), 0.55);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(11) {
  background: rgba(var(--jazz-color-rgb), 0.6);
}

._jazz .b-box-event .b-box-event__list > *:nth-child(12) {
  background: rgba(var(--jazz-color-rgb), 0.65);
}

._rock .b-box-event .b-box-event__list > * {
  background: rgba(237, 162, 152, 0.65);
}

._rock .b-box-event .b-box-event__list > *:nth-child(1) {
  background: rgba(237, 162, 152, 0.1);
}

._rock .b-box-event .b-box-event__list > *:nth-child(2) {
  background: rgba(237, 162, 152, 0.15);
}

._rock .b-box-event .b-box-event__list > *:nth-child(3) {
  background: rgba(237, 162, 152, 0.2);
}

._rock .b-box-event .b-box-event__list > *:nth-child(4) {
  background: rgba(237, 162, 152, 0.25);
}

._rock .b-box-event .b-box-event__list > *:nth-child(5) {
  background: rgba(237, 162, 152, 0.3);
}

._rock .b-box-event .b-box-event__list > *:nth-child(6) {
  background: rgba(237, 162, 152, 0.35);
}

._rock .b-box-event .b-box-event__list > *:nth-child(7) {
  background: rgba(237, 162, 152, 0.4);
}

._rock .b-box-event .b-box-event__list > *:nth-child(8) {
  background: rgba(237, 162, 152, 0.45);
}

._rock .b-box-event .b-box-event__list > *:nth-child(9) {
  background: rgba(237, 162, 152, 0.5);
}

._rock .b-box-event .b-box-event__list > *:nth-child(10) {
  background: rgba(237, 162, 152, 0.55);
}

._rock .b-box-event .b-box-event__list > *:nth-child(11) {
  background: rgba(237, 162, 152, 0.6);
}

._rock .b-box-event .b-box-event__list > *:nth-child(12) {
  background: rgba(237, 162, 152, 0.65);
}

._rock .b-box-event .b-box-event__list > * {
  background: rgba(var(--rock-color-rgb), 0.65);
}

._rock .b-box-event .b-box-event__list > *:nth-child(1) {
  background: rgba(var(--rock-color-rgb), 0.1);
}

._rock .b-box-event .b-box-event__list > *:nth-child(2) {
  background: rgba(var(--rock-color-rgb), 0.15);
}

._rock .b-box-event .b-box-event__list > *:nth-child(3) {
  background: rgba(var(--rock-color-rgb), 0.2);
}

._rock .b-box-event .b-box-event__list > *:nth-child(4) {
  background: rgba(var(--rock-color-rgb), 0.25);
}

._rock .b-box-event .b-box-event__list > *:nth-child(5) {
  background: rgba(var(--rock-color-rgb), 0.3);
}

._rock .b-box-event .b-box-event__list > *:nth-child(6) {
  background: rgba(var(--rock-color-rgb), 0.35);
}

._rock .b-box-event .b-box-event__list > *:nth-child(7) {
  background: rgba(var(--rock-color-rgb), 0.4);
}

._rock .b-box-event .b-box-event__list > *:nth-child(8) {
  background: rgba(var(--rock-color-rgb), 0.45);
}

._rock .b-box-event .b-box-event__list > *:nth-child(9) {
  background: rgba(var(--rock-color-rgb), 0.5);
}

._rock .b-box-event .b-box-event__list > *:nth-child(10) {
  background: rgba(var(--rock-color-rgb), 0.55);
}

._rock .b-box-event .b-box-event__list > *:nth-child(11) {
  background: rgba(var(--rock-color-rgb), 0.6);
}

._rock .b-box-event .b-box-event__list > *:nth-child(12) {
  background: rgba(var(--rock-color-rgb), 0.65);
}

@media print, screen and (max-width: 63.99875em) {
  .b-box-event {
    border-width: 4px;
  }
  .b-box-event .b-box-event__header {
    border-bottom-width: 4px;
  }
}

.b-box-event__header {
  background: #FCF9E8;
  padding: 1.5rem 1.8rem;
  display: flex;
  align-items: center;
  border-bottom: 6px solid #2C1C21;
}

.b-box-event__header > *:first-of-type {
  margin-inline-end: auto;
}

.b-box-event__header-title {
  line-height: 1.16;
  font-size: 3.6rem;
}

.b-box-event__header-title > span, .b-box-event__header-title ._small {
  font-size: 83.3%;
}

.b-box-event__row {
  padding: 1.1rem 1.8rem 1.7rem;
  display: flex;
  align-items: center;
}

.b-box-event__row > *:first-child {
  margin-inline-end: auto;
}

.b-box-event__info {
  line-height: 1.37;
}

.b-box-event__link {
  transition: .3s ease;
  position: relative;
  font-size: 1.8rem;
}

.b-box-event__link:hover {
  opacity: .7;
}

.b-box-event__link:after {
  content: '';
  left: -.5rem;
  top: -.5rem;
  right: -.5rem;
  bottom: -.5rem;
  position: absolute;
}

.b-box-event__link svg {
  width: 1em;
  height: 1em;
}

.b-box-event .event-artist {
  font-size: 2.4rem;
  font-weight: 700;
}

.b-box-event .event-time {
  font-weight: 400;
  font-size: 2.4rem;
}

.b-box-event .event-location {
  font-size: 1.8rem;
}

@media print, screen and (max-width: 39.99875em) {
  .b-box-event__header {
    flex-direction: column;
  }
  .b-box-event__header > *:first-of-type {
    margin: 0;
    margin-bottom: 1rem;
  }
}

[class*='btn-'] {
  display: inline-block;
}

[class*='btn-']:hover {
  text-decoration: none;
}

.btn-icon {
  background-color: transparent;
  border: medium none;
  outline: none;
  height: auto;
  line-height: 1;
  width: auto;
  padding: 1.1rem 1rem;
}

.btn-dropdown, .btn-link {
  background-color: transparent;
  border: medium none;
  outline: none;
  padding: 0;
}

.btn--block {
  display: block;
  width: 100%;
}

.btn, .gform_wrapper .gform_button.button, .btn-flat, .b-city-list a, .button {
  position: relative;
  border-radius: 0px;
  border: 1px solid #ECD108;
  font-family: "Mandatory", "Roboto", sans-serif;
  font-weight: 400;
  display: inline-block;
  line-height: 1;
  font-size: 2.7rem;
  color: #2C1C21;
  text-transform: uppercase;
  background: #ECD108;
  padding: .9rem 2.4rem .9rem;
  text-align: center;
  transition: color .3s, background .3s, border-color .3s;
}

.btn:link, .gform_wrapper .gform_button.button:link, .btn-flat:link, .b-city-list a:link, .button:link {
  text-decoration: none;
}

.btn:link:hover, .gform_wrapper .gform_button.button:link:hover, .btn-flat:link:hover, .b-city-list a:link:hover, .button:link:hover {
  text-decoration: none;
}

.btn:hover, .gform_wrapper .gform_button.button:hover, .btn-flat:hover, .b-city-list a:hover, .btn:focus, .gform_wrapper .gform_button.button:focus, .btn-flat:focus, .b-city-list a:focus, .button:hover, .button:focus {
  border-color: #fe4f52;
  background: #fe4f52;
  color: #2C1C21;
}

.btn--border, form .row-field--btn .btn, form .row-field--btn .btn-flat, form .row-field--btn .b-city-list a, .b-city-list form .row-field--btn a, form .row-field--btn .button, .gform_wrapper .gform_button.button, .b-city-list a, .b-program-btn-list .btn, .b-program-btn-list .btn-flat, .b-program-btn-list .b-city-list a, .b-city-list .b-program-btn-list a, .button--border {
  border: 6px solid #2C1C21;
}

.btn--border:hover, form .row-field--btn .btn:hover, form .row-field--btn .btn-flat:hover, form .row-field--btn .button:hover, .gform_wrapper .gform_button.button:hover, .b-city-list a:hover, .b-program-btn-list .btn:hover, .b-program-btn-list .btn-flat:hover, .btn--border:focus, form .row-field--btn .btn:focus, form .row-field--btn .btn-flat:focus, form .row-field--btn .button:focus, .gform_wrapper .gform_button.button:focus, .b-city-list a:focus, .b-program-btn-list .btn:focus, .b-program-btn-list .btn-flat:focus, .button--border:hover, .button--border:focus {
  border-color: #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .btn--border, form .row-field--btn .btn, form .row-field--btn .btn-flat, form .row-field--btn .b-city-list a, .b-city-list form .row-field--btn a, form .row-field--btn .button, .gform_wrapper .gform_button.button, .b-city-list a, .b-program-btn-list .btn, .b-program-btn-list .btn-flat, .b-program-btn-list .b-city-list a, .b-city-list .b-program-btn-list a, .button--border {
    border-width: 4px;
  }
}

.btn--small, .button--small {
  font-family: "Mandatory-18", "Roboto", sans-serif;
  padding: .3em .6em .2em;
}

.btn--large, .b-city-list a, .button--large {
  font-size: 3rem;
  padding: .4em .6em .5em;
}

.btn.m-white, .gform_wrapper .m-white.gform_button.button, .m-white.btn-flat, .b-city-list a.m-white, .button.m-white {
  background: #fff;
  color: #2C1C21;
}

.btn.m-white:hover, .gform_wrapper .m-white.gform_button.button:hover, .m-white.btn-flat:hover, .b-city-list a.m-white:hover, .button.m-white:hover {
  background: transparent;
  color: #fff;
  border-color: #fff;
}

.btn.m-shadow, .gform_wrapper .m-shadow.gform_button.button, .m-shadow.btn-flat, .b-city-list a.m-shadow, .button.m-shadow {
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.47);
}

.btn.m-fixed, .gform_wrapper .m-fixed.gform_button.button, .m-fixed.btn-flat, .b-city-list a.m-fixed, .button.m-fixed {
  width: 22.6rem;
}

.btn.m-rounded, .gform_wrapper .m-rounded.gform_button.button, .m-rounded.btn-flat, .b-city-list a.m-rounded, .button.m-rounded {
  border-radius: 100px;
}

.btn.m-wide, .gform_wrapper .m-wide.gform_button.button, .m-wide.btn-flat, .b-city-list a.m-wide, .b-program-btn-list .btn, .b-program-btn-list .gform_wrapper .gform_button.button, .gform_wrapper .b-program-btn-list .gform_button.button, .b-program-btn-list .btn-flat, .b-program-btn-list .b-city-list a, .b-city-list .b-program-btn-list a, .button.m-wide, .b-program-btn-list .button.btn, .b-program-btn-list .gform_wrapper .button.gform_button, .gform_wrapper .b-program-btn-list .button.gform_button, .b-program-btn-list .button.btn-flat, .b-program-btn-list .b-city-list a.button, .b-city-list .b-program-btn-list a.button {
  padding: .2em .75em .25em;
  font-family: "Mandatory-18", "Roboto", sans-serif;
  font-size: 3rem;
}

.btn--orange, .button--orange {
  background: #efb15d;
}

.btn--orange:hover, .btn--orange:focus, .button--orange:hover, .button--orange:focus {
  background: #fe1c20;
}

.btn--red, .b-program-btn-list._rock .btn, .b-program-btn-list._rock .gform_wrapper .gform_button.button, .gform_wrapper .b-program-btn-list._rock .gform_button.button, .b-program-btn-list._rock .btn-flat, .b-program-btn-list._rock .b-city-list a, .b-city-list .b-program-btn-list._rock a, .button--red {
  background: #d0096f;
}

.btn--red:hover, .b-program-btn-list._rock .btn:hover, .b-program-btn-list._rock .gform_wrapper .gform_button.button:hover, .gform_wrapper .b-program-btn-list._rock .gform_button.button:hover, .b-program-btn-list._rock .btn-flat:hover, .b-program-btn-list._rock .b-city-list a:hover, .b-city-list .b-program-btn-list._rock a:hover, .btn--red:focus, .b-program-btn-list._rock .btn:focus, .b-program-btn-list._rock .gform_wrapper .gform_button.button:focus, .gform_wrapper .b-program-btn-list._rock .gform_button.button:focus, .b-program-btn-list._rock .btn-flat:focus, .b-program-btn-list._rock .b-city-list a:focus, .b-city-list .b-program-btn-list._rock a:focus, .button--red:hover, .button--red:focus {
  background: #fe1c20;
}

.btn--green, .b-program-btn-list._jazz .btn, .b-program-btn-list._jazz .gform_wrapper .gform_button.button, .gform_wrapper .b-program-btn-list._jazz .gform_button.button, .b-program-btn-list._jazz .btn-flat, .b-program-btn-list._jazz .b-city-list a, .b-city-list .b-program-btn-list._jazz a, .button--green {
  background: #56bf72;
}

.btn--green:hover, .b-program-btn-list._jazz .btn:hover, .b-program-btn-list._jazz .gform_wrapper .gform_button.button:hover, .gform_wrapper .b-program-btn-list._jazz .gform_button.button:hover, .b-program-btn-list._jazz .btn-flat:hover, .b-program-btn-list._jazz .b-city-list a:hover, .b-city-list .b-program-btn-list._jazz a:hover, .btn--green:focus, .b-program-btn-list._jazz .btn:focus, .b-program-btn-list._jazz .gform_wrapper .gform_button.button:focus, .gform_wrapper .b-program-btn-list._jazz .gform_button.button:focus, .b-program-btn-list._jazz .btn-flat:focus, .b-program-btn-list._jazz .b-city-list a:focus, .b-city-list .b-program-btn-list._jazz a:focus, .button--green:hover, .button--green:focus {
  background: #fe1c20;
}

.btn--blue, .button--blue {
  background: #506084;
}

.btn--blue:hover, .btn--blue:focus, .button--blue:hover, .button--blue:focus {
  background: #fe1c20;
}

.btn--light-red, .button--light-red {
  background: #e37b75;
}

.btn--light-red:hover, .btn--light-red:focus, .button--light-red:hover, .button--light-red:focus {
  background: #fe1c20;
}

.btn--yellow, .button--yellow {
  background: #e4ca0a;
}

.btn--yellow:hover, .btn--yellow:focus, .button--yellow:hover, .button--yellow:focus {
  background: #fe1c20;
}

button {
  border: medium none;
}

button span {
  vertical-align: middle;
}

.btn-flat {
  background: transparent;
  font-weight: 400;
  color: #E5B16A;
}

.btn.btn--group, .gform_wrapper .btn--group.gform_button.button, .btn--group.btn-flat, .b-city-list a.btn--group {
  position: relative;
  border-width: 5px;
  border-color: #241E1E;
  display: flex;
  padding: 0;
  font-size: 3.2rem;
  line-height: 1.2;
}

.btn.btn--group.btn--fire, .gform_wrapper .btn--group.btn--fire.gform_button.button, .btn--group.btn--fire.btn-flat, .b-city-list a.btn--group.btn--fire {
  background: transparent;
  margin-top: 6rem;
  z-index: 1;
  max-width: 40rem;
  font-size: 3.2rem;
  line-height: 1.2;
}

.btn.btn--group.btn--fire:after, .gform_wrapper .btn--group.btn--fire.gform_button.button:after, .btn--group.btn--fire.btn-flat:after, .b-city-list a.btn--group.btn--fire:after {
  content: '';
  position: absolute;
  top: -12px;
  left: -12px;
  width: calc(100% + 24px);
  height: calc(100% + 24px);
  border: 5px solid;
}

.btn.btn--group.btn--fire:before, .gform_wrapper .btn--group.btn--fire.gform_button.button:before, .btn--group.btn--fire.btn-flat:before, .b-city-list a.btn--group.btn--fire:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: -5px;
  top: -10rem;
  top: -110%;
  width: calc(100% + 10px);
  height: 210%;
  background: url(../img/common/fire.svg) 50% 0 no-repeat;
  background-size: 100% auto;
}

.btn.btn--group.btn--fire:hover > *, .gform_wrapper .btn--group.btn--fire.gform_button.button:hover > *, .btn--group.btn--fire.btn-flat:hover > *, .b-city-list a.btn--group.btn--fire:hover > * {
  background: #fe4f52;
}

.btn.btn--group.btn--fire > *, .gform_wrapper .btn--group.btn--fire.gform_button.button > *, .btn--group.btn--fire.btn-flat > *, .b-city-list a.btn--group.btn--fire > * {
  background: #E5B16A;
}

.btn.btn--group.btn--fire.btn--orange, .gform_wrapper .btn--group.btn--fire.btn--orange.gform_button.button, .btn--group.btn--fire.btn--orange.btn-flat, .b-city-list a.btn--group.btn--fire.btn--orange {
  background: #efb15d;
}

.btn.btn--group.btn--fire.btn--orange:hover, .gform_wrapper .btn--group.btn--fire.btn--orange.gform_button.button:hover, .btn--group.btn--fire.btn--orange.btn-flat:hover, .b-city-list a.btn--group.btn--fire.btn--orange:hover, .btn.btn--group.btn--fire.btn--orange:focus, .gform_wrapper .btn--group.btn--fire.btn--orange.gform_button.button:focus, .btn--group.btn--fire.btn--orange.btn-flat:focus, .b-city-list a.btn--group.btn--fire.btn--orange:focus {
  background: #ea9b2f;
}

.btn.btn--group.btn--fire.btn--orange:hover > *, .gform_wrapper .btn--group.btn--fire.btn--orange.gform_button.button:hover > *, .btn--group.btn--fire.btn--orange.btn-flat:hover > *, .b-city-list a.btn--group.btn--fire.btn--orange:hover > *, .btn.btn--group.btn--fire.btn--orange:focus > *, .gform_wrapper .btn--group.btn--fire.btn--orange.gform_button.button:focus > *, .btn--group.btn--fire.btn--orange.btn-flat:focus > *, .b-city-list a.btn--group.btn--fire.btn--orange:focus > * {
  background: #fe1c20;
}

.btn.btn--group.btn--fire.btn--orange > *, .gform_wrapper .btn--group.btn--fire.btn--orange.gform_button.button > *, .btn--group.btn--fire.btn--orange.btn-flat > *, .b-city-list a.btn--group.btn--fire.btn--orange > * {
  background: #efb15d;
}

.btn.btn--group.btn--fire.btn--red, .gform_wrapper .btn--group.btn--fire.btn--red.gform_button.button, .btn--group.btn--fire.btn--red.btn-flat, .b-city-list a.btn--group.btn--fire.btn--red, .b-program-btn-list._rock .btn.btn--group.btn--fire, .b-program-btn-list._rock .gform_wrapper .btn--group.btn--fire.gform_button.button, .gform_wrapper .b-program-btn-list._rock .btn--group.btn--fire.gform_button.button, .b-program-btn-list._rock .btn--group.btn--fire.btn-flat, .b-program-btn-list._rock .b-city-list a.btn--group.btn--fire, .b-city-list .b-program-btn-list._rock a.btn--group.btn--fire {
  background: #d0096f;
}

.btn.btn--group.btn--fire.btn--red:hover, .gform_wrapper .btn--group.btn--fire.btn--red.gform_button.button:hover, .btn--group.btn--fire.btn--red.btn-flat:hover, .b-city-list a.btn--group.btn--fire.btn--red:hover, .b-program-btn-list._rock .btn.btn--group.btn--fire:hover, .b-program-btn-list._rock .gform_wrapper .btn--group.btn--fire.gform_button.button:hover, .gform_wrapper .b-program-btn-list._rock .btn--group.btn--fire.gform_button.button:hover, .b-program-btn-list._rock .btn--group.btn--fire.btn-flat:hover, .b-program-btn-list._rock .b-city-list a.btn--group.btn--fire:hover, .b-city-list .b-program-btn-list._rock a.btn--group.btn--fire:hover, .btn.btn--group.btn--fire.btn--red:focus, .gform_wrapper .btn--group.btn--fire.btn--red.gform_button.button:focus, .btn--group.btn--fire.btn--red.btn-flat:focus, .b-city-list a.btn--group.btn--fire.btn--red:focus, .b-program-btn-list._rock .btn.btn--group.btn--fire:focus, .b-program-btn-list._rock .gform_wrapper .btn--group.btn--fire.gform_button.button:focus, .gform_wrapper .b-program-btn-list._rock .btn--group.btn--fire.gform_button.button:focus, .b-program-btn-list._rock .btn--group.btn--fire.btn-flat:focus, .b-program-btn-list._rock .b-city-list a.btn--group.btn--fire:focus, .b-city-list .b-program-btn-list._rock a.btn--group.btn--fire:focus {
  background: #9f0755;
}

.btn.btn--group.btn--fire.btn--red:hover > *, .gform_wrapper .btn--group.btn--fire.btn--red.gform_button.button:hover > *, .btn--group.btn--fire.btn--red.btn-flat:hover > *, .b-city-list a.btn--group.btn--fire.btn--red:hover > *, .b-program-btn-list._rock .btn.btn--group.btn--fire:hover > *, .b-program-btn-list._rock .gform_wrapper .btn--group.btn--fire.gform_button.button:hover > *, .gform_wrapper .b-program-btn-list._rock .btn--group.btn--fire.gform_button.button:hover > *, .b-program-btn-list._rock .btn--group.btn--fire.btn-flat:hover > *, .b-program-btn-list._rock .b-city-list a.btn--group.btn--fire:hover > *, .b-city-list .b-program-btn-list._rock a.btn--group.btn--fire:hover > *, .btn.btn--group.btn--fire.btn--red:focus > *, .gform_wrapper .btn--group.btn--fire.btn--red.gform_button.button:focus > *, .btn--group.btn--fire.btn--red.btn-flat:focus > *, .b-city-list a.btn--group.btn--fire.btn--red:focus > *, .b-program-btn-list._rock .btn.btn--group.btn--fire:focus > *, .b-program-btn-list._rock .gform_wrapper .btn--group.btn--fire.gform_button.button:focus > *, .gform_wrapper .b-program-btn-list._rock .btn--group.btn--fire.gform_button.button:focus > *, .b-program-btn-list._rock .btn--group.btn--fire.btn-flat:focus > *, .b-program-btn-list._rock .b-city-list a.btn--group.btn--fire:focus > *, .b-city-list .b-program-btn-list._rock a.btn--group.btn--fire:focus > * {
  background: #fe1c20;
}

.btn.btn--group.btn--fire.btn--red > *, .gform_wrapper .btn--group.btn--fire.btn--red.gform_button.button > *, .btn--group.btn--fire.btn--red.btn-flat > *, .b-city-list a.btn--group.btn--fire.btn--red > *, .b-program-btn-list._rock .btn.btn--group.btn--fire > *, .b-program-btn-list._rock .gform_wrapper .btn--group.btn--fire.gform_button.button > *, .gform_wrapper .b-program-btn-list._rock .btn--group.btn--fire.gform_button.button > *, .b-program-btn-list._rock .btn--group.btn--fire.btn-flat > *, .b-program-btn-list._rock .b-city-list a.btn--group.btn--fire > *, .b-city-list .b-program-btn-list._rock a.btn--group.btn--fire > * {
  background: #d0096f;
}

.btn.btn--group.btn--fire.btn--green, .gform_wrapper .btn--group.btn--fire.btn--green.gform_button.button, .btn--group.btn--fire.btn--green.btn-flat, .b-city-list a.btn--group.btn--fire.btn--green, .b-program-btn-list._jazz .btn.btn--group.btn--fire, .b-program-btn-list._jazz .gform_wrapper .btn--group.btn--fire.gform_button.button, .gform_wrapper .b-program-btn-list._jazz .btn--group.btn--fire.gform_button.button, .b-program-btn-list._jazz .btn--group.btn--fire.btn-flat, .b-program-btn-list._jazz .b-city-list a.btn--group.btn--fire, .b-city-list .b-program-btn-list._jazz a.btn--group.btn--fire {
  background: #56bf72;
}

.btn.btn--group.btn--fire.btn--green:hover, .gform_wrapper .btn--group.btn--fire.btn--green.gform_button.button:hover, .btn--group.btn--fire.btn--green.btn-flat:hover, .b-city-list a.btn--group.btn--fire.btn--green:hover, .b-program-btn-list._jazz .btn.btn--group.btn--fire:hover, .b-program-btn-list._jazz .gform_wrapper .btn--group.btn--fire.gform_button.button:hover, .gform_wrapper .b-program-btn-list._jazz .btn--group.btn--fire.gform_button.button:hover, .b-program-btn-list._jazz .btn--group.btn--fire.btn-flat:hover, .b-program-btn-list._jazz .b-city-list a.btn--group.btn--fire:hover, .b-city-list .b-program-btn-list._jazz a.btn--group.btn--fire:hover, .btn.btn--group.btn--fire.btn--green:focus, .gform_wrapper .btn--group.btn--fire.btn--green.gform_button.button:focus, .btn--group.btn--fire.btn--green.btn-flat:focus, .b-city-list a.btn--group.btn--fire.btn--green:focus, .b-program-btn-list._jazz .btn.btn--group.btn--fire:focus, .b-program-btn-list._jazz .gform_wrapper .btn--group.btn--fire.gform_button.button:focus, .gform_wrapper .b-program-btn-list._jazz .btn--group.btn--fire.gform_button.button:focus, .b-program-btn-list._jazz .btn--group.btn--fire.btn-flat:focus, .b-program-btn-list._jazz .b-city-list a.btn--group.btn--fire:focus, .b-city-list .b-program-btn-list._jazz a.btn--group.btn--fire:focus {
  background: #3ea459;
}

.btn.btn--group.btn--fire.btn--green:hover > *, .gform_wrapper .btn--group.btn--fire.btn--green.gform_button.button:hover > *, .btn--group.btn--fire.btn--green.btn-flat:hover > *, .b-city-list a.btn--group.btn--fire.btn--green:hover > *, .b-program-btn-list._jazz .btn.btn--group.btn--fire:hover > *, .b-program-btn-list._jazz .gform_wrapper .btn--group.btn--fire.gform_button.button:hover > *, .gform_wrapper .b-program-btn-list._jazz .btn--group.btn--fire.gform_button.button:hover > *, .b-program-btn-list._jazz .btn--group.btn--fire.btn-flat:hover > *, .b-program-btn-list._jazz .b-city-list a.btn--group.btn--fire:hover > *, .b-city-list .b-program-btn-list._jazz a.btn--group.btn--fire:hover > *, .btn.btn--group.btn--fire.btn--green:focus > *, .gform_wrapper .btn--group.btn--fire.btn--green.gform_button.button:focus > *, .btn--group.btn--fire.btn--green.btn-flat:focus > *, .b-city-list a.btn--group.btn--fire.btn--green:focus > *, .b-program-btn-list._jazz .btn.btn--group.btn--fire:focus > *, .b-program-btn-list._jazz .gform_wrapper .btn--group.btn--fire.gform_button.button:focus > *, .gform_wrapper .b-program-btn-list._jazz .btn--group.btn--fire.gform_button.button:focus > *, .b-program-btn-list._jazz .btn--group.btn--fire.btn-flat:focus > *, .b-program-btn-list._jazz .b-city-list a.btn--group.btn--fire:focus > *, .b-city-list .b-program-btn-list._jazz a.btn--group.btn--fire:focus > * {
  background: #fe1c20;
}

.btn.btn--group.btn--fire.btn--green > *, .gform_wrapper .btn--group.btn--fire.btn--green.gform_button.button > *, .btn--group.btn--fire.btn--green.btn-flat > *, .b-city-list a.btn--group.btn--fire.btn--green > *, .b-program-btn-list._jazz .btn.btn--group.btn--fire > *, .b-program-btn-list._jazz .gform_wrapper .btn--group.btn--fire.gform_button.button > *, .gform_wrapper .b-program-btn-list._jazz .btn--group.btn--fire.gform_button.button > *, .b-program-btn-list._jazz .btn--group.btn--fire.btn-flat > *, .b-program-btn-list._jazz .b-city-list a.btn--group.btn--fire > *, .b-city-list .b-program-btn-list._jazz a.btn--group.btn--fire > * {
  background: #56bf72;
}

.btn.btn--group.btn--fire.btn--blue, .gform_wrapper .btn--group.btn--fire.btn--blue.gform_button.button, .btn--group.btn--fire.btn--blue.btn-flat, .b-city-list a.btn--group.btn--fire.btn--blue {
  background: #506084;
}

.btn.btn--group.btn--fire.btn--blue:hover, .gform_wrapper .btn--group.btn--fire.btn--blue.gform_button.button:hover, .btn--group.btn--fire.btn--blue.btn-flat:hover, .b-city-list a.btn--group.btn--fire.btn--blue:hover, .btn.btn--group.btn--fire.btn--blue:focus, .gform_wrapper .btn--group.btn--fire.btn--blue.gform_button.button:focus, .btn--group.btn--fire.btn--blue.btn-flat:focus, .b-city-list a.btn--group.btn--fire.btn--blue:focus {
  background: #3d4964;
}

.btn.btn--group.btn--fire.btn--blue:hover > *, .gform_wrapper .btn--group.btn--fire.btn--blue.gform_button.button:hover > *, .btn--group.btn--fire.btn--blue.btn-flat:hover > *, .b-city-list a.btn--group.btn--fire.btn--blue:hover > *, .btn.btn--group.btn--fire.btn--blue:focus > *, .gform_wrapper .btn--group.btn--fire.btn--blue.gform_button.button:focus > *, .btn--group.btn--fire.btn--blue.btn-flat:focus > *, .b-city-list a.btn--group.btn--fire.btn--blue:focus > * {
  background: #fe1c20;
}

.btn.btn--group.btn--fire.btn--blue > *, .gform_wrapper .btn--group.btn--fire.btn--blue.gform_button.button > *, .btn--group.btn--fire.btn--blue.btn-flat > *, .b-city-list a.btn--group.btn--fire.btn--blue > * {
  background: #506084;
}

.btn.btn--group.btn--fire.btn--yellow, .gform_wrapper .btn--group.btn--fire.btn--yellow.gform_button.button, .btn--group.btn--fire.btn--yellow.btn-flat, .b-city-list a.btn--group.btn--fire.btn--yellow {
  background: #e4ca0a;
}

.btn.btn--group.btn--fire.btn--yellow:hover, .gform_wrapper .btn--group.btn--fire.btn--yellow.gform_button.button:hover, .btn--group.btn--fire.btn--yellow.btn-flat:hover, .b-city-list a.btn--group.btn--fire.btn--yellow:hover, .btn.btn--group.btn--fire.btn--yellow:focus, .gform_wrapper .btn--group.btn--fire.btn--yellow.gform_button.button:focus, .btn--group.btn--fire.btn--yellow.btn-flat:focus, .b-city-list a.btn--group.btn--fire.btn--yellow:focus {
  background: #ccb409;
}

.btn.btn--group.btn--fire.btn--yellow:hover > *, .gform_wrapper .btn--group.btn--fire.btn--yellow.gform_button.button:hover > *, .btn--group.btn--fire.btn--yellow.btn-flat:hover > *, .b-city-list a.btn--group.btn--fire.btn--yellow:hover > *, .btn.btn--group.btn--fire.btn--yellow:focus > *, .gform_wrapper .btn--group.btn--fire.btn--yellow.gform_button.button:focus > *, .btn--group.btn--fire.btn--yellow.btn-flat:focus > *, .b-city-list a.btn--group.btn--fire.btn--yellow:focus > * {
  background: #fe3639;
}

.btn.btn--group.btn--fire.btn--yellow > *, .gform_wrapper .btn--group.btn--fire.btn--yellow.gform_button.button > *, .btn--group.btn--fire.btn--yellow.btn-flat > *, .b-city-list a.btn--group.btn--fire.btn--yellow > * {
  background: #e4ca0a;
}

.btn.btn--group.btn--fire.btn--light-red, .gform_wrapper .btn--group.btn--fire.btn--light-red.gform_button.button, .btn--group.btn--fire.btn--light-red.btn-flat, .b-city-list a.btn--group.btn--fire.btn--light-red {
  background: #e37b75;
}

.btn.btn--group.btn--fire.btn--light-red:hover, .gform_wrapper .btn--group.btn--fire.btn--light-red.gform_button.button:hover, .btn--group.btn--fire.btn--light-red.btn-flat:hover, .b-city-list a.btn--group.btn--fire.btn--light-red:hover, .btn.btn--group.btn--fire.btn--light-red:focus, .gform_wrapper .btn--group.btn--fire.btn--light-red.gform_button.button:focus, .btn--group.btn--fire.btn--light-red.btn-flat:focus, .b-city-list a.btn--group.btn--fire.btn--light-red:focus {
  background: #df6760;
}

.btn.btn--group.btn--fire.btn--light-red:hover > *, .gform_wrapper .btn--group.btn--fire.btn--light-red.gform_button.button:hover > *, .btn--group.btn--fire.btn--light-red.btn-flat:hover > *, .b-city-list a.btn--group.btn--fire.btn--light-red:hover > *, .btn.btn--group.btn--fire.btn--light-red:focus > *, .gform_wrapper .btn--group.btn--fire.btn--light-red.gform_button.button:focus > *, .btn--group.btn--fire.btn--light-red.btn-flat:focus > *, .b-city-list a.btn--group.btn--fire.btn--light-red:focus > * {
  background: #fe3639;
}

.btn.btn--group.btn--fire.btn--light-red > *, .gform_wrapper .btn--group.btn--fire.btn--light-red.gform_button.button > *, .btn--group.btn--fire.btn--light-red.btn-flat > *, .b-city-list a.btn--group.btn--fire.btn--light-red > * {
  background: #e37b75;
}

.btn.btn--group.btn--fire._no-fire, .gform_wrapper .btn--group.btn--fire._no-fire.gform_button.button, .btn--group.btn--fire._no-fire.btn-flat, .b-city-list a.btn--group.btn--fire._no-fire {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.btn.btn--group.btn--fire._no-fire:before, .gform_wrapper .btn--group.btn--fire._no-fire.gform_button.button:before, .btn--group.btn--fire._no-fire.btn-flat:before, .b-city-list a.btn--group.btn--fire._no-fire:before {
  background: none;
}

.btn.btn--group.m-wide, .gform_wrapper .btn--group.m-wide.gform_button.button, .btn--group.m-wide.btn-flat, .b-city-list a.btn--group.m-wide, .b-program-btn-list .btn.btn--group, .b-program-btn-list .gform_wrapper .btn--group.gform_button.button, .gform_wrapper .b-program-btn-list .btn--group.gform_button.button, .b-program-btn-list .btn--group.btn-flat, .b-program-btn-list .b-city-list a.btn--group, .b-city-list .b-program-btn-list a.btn--group {
  max-width: 52.4rem;
}

.btn.btn--group.btn--artist .btn__icn img, .gform_wrapper .btn--group.btn--artist.gform_button.button .btn__icn img, .btn--group.btn--artist.btn-flat .btn__icn img, .b-city-list a.btn--group.btn--artist .btn__icn img {
  max-height: 9rem;
  object-fit: contain;
  image-rendering: crisp-edges;
  image-rendering: -moz-crisp-edges;
  /* Firefox */
  image-rendering: -o-crisp-edges;
  /* Opera */
  image-rendering: -webkit-optimize-contrast;
  /* Webkit (non-standard naming)*/
  -ms-interpolation-mode: nearest-neighbor;
  /* IE (non-standard property) */
}

.btn.btn--group.btn--guest .btn__icn img, .gform_wrapper .btn--group.btn--guest.gform_button.button .btn__icn img, .btn--group.btn--guest.btn-flat .btn__icn img, .b-city-list a.btn--group.btn--guest .btn__icn img {
  max-height: 9rem;
  object-fit: contain;
  image-rendering: crisp-edges;
  image-rendering: -moz-crisp-edges;
  /* Firefox */
  image-rendering: -o-crisp-edges;
  /* Opera */
  image-rendering: -webkit-optimize-contrast;
  /* Webkit (non-standard naming)*/
  -ms-interpolation-mode: nearest-neighbor;
  /* IE (non-standard property) */
}

.btn.btn--group.btn--whatsapp .btn__icn img, .gform_wrapper .btn--group.btn--whatsapp.gform_button.button .btn__icn img, .btn--group.btn--whatsapp.btn-flat .btn__icn img, .b-city-list a.btn--group.btn--whatsapp .btn__icn img {
  max-height: 7.2rem;
}

.btn.btn--group .btn__icn, .gform_wrapper .btn--group.gform_button.button .btn__icn, .btn--group.btn-flat .btn__icn, .b-city-list a.btn--group .btn__icn {
  border-left: 5px solid #241E1E;
  display: inline-flex;
  max-width: 15rem;
  width: 29%;
  flex: 0 0 29%;
  padding-left: 1rem;
  padding-right: 1rem;
  text-align: center;
  align-items: center;
  justify-content: center;
}

.btn.btn--group .btn__text, .gform_wrapper .btn--group.gform_button.button .btn__text, .btn--group.btn-flat .btn__text, .b-city-list a.btn--group .btn__text {
  flex: 1;
  padding-top: 1rem;
  padding-bottom: .3rem;
}

.btn.btn--group .btn__text span, .gform_wrapper .btn--group.gform_button.button .btn__text span, .btn--group.btn-flat .btn__text span, .b-city-list a.btn--group .btn__text span {
  color: #fff;
}

@media print, screen and (max-width: 63.99875em) {
  .btn.btn--group.btn--fire, .gform_wrapper .btn--group.btn--fire.gform_button.button, .btn--group.btn--fire.btn-flat, .b-city-list a.btn--group.btn--fire {
    margin-left: auto;
    margin-right: auto;
  }
  .btn.btn--group.btn--fire + .btn.btn--group.btn--fire, .gform_wrapper .btn--group.btn--fire.gform_button.button + .btn.btn--group.btn--fire, .btn--group.btn--fire.btn-flat + .btn.btn--group.btn--fire, .b-city-list a.btn--group.btn--fire + .btn.btn--group.btn--fire, .gform_wrapper .btn.btn--group.btn--fire + .btn--group.btn--fire.gform_button.button, .gform_wrapper .btn--group.btn--fire.gform_button.button + .btn--group.btn--fire.gform_button.button, .gform_wrapper .btn--group.btn--fire.btn-flat + .btn--group.btn--fire.gform_button.button, .b-city-list .gform_wrapper a.btn--group.btn--fire + .btn--group.btn--fire.gform_button.button, .gform_wrapper .b-city-list a.btn--group.btn--fire + .btn--group.btn--fire.gform_button.button, .btn.btn--group.btn--fire + .btn--group.btn--fire.btn-flat, .gform_wrapper .btn--group.btn--fire.gform_button.button + .btn--group.btn--fire.btn-flat, .btn--group.btn--fire.btn-flat + .btn--group.btn--fire.btn-flat, .b-city-list a.btn--group.btn--fire + .btn--group.btn--fire.btn-flat, .b-city-list .btn.btn--group.btn--fire + a.btn--group.btn--fire, .gform_wrapper .b-city-list .btn--group.btn--fire.gform_button.button + a.btn--group.btn--fire, .b-city-list .gform_wrapper .btn--group.btn--fire.gform_button.button + a.btn--group.btn--fire, .b-city-list .btn--group.btn--fire.btn-flat + a.btn--group.btn--fire, .b-city-list a.btn--group.btn--fire + a.btn--group.btn--fire {
    margin-top: 8rem;
  }
}

.btn-submit {
  font-size: 3.6rem;
}

.btn.btn-event, .gform_wrapper .btn-event.gform_button.button, .btn-event.btn-flat, .b-city-list a.btn-event {
  font-size: 3.5rem;
  border: 2px solid #2C1C21;
}

.btn.btn-event:hover, .gform_wrapper .btn-event.gform_button.button:hover, .btn-event.btn-flat:hover, .b-city-list a.btn-event:hover, .btn.btn-event:focus, .gform_wrapper .btn-event.gform_button.button:focus, .btn-event.btn-flat:focus, .b-city-list a.btn-event:focus {
  background: #ECD108;
  box-shadow: 0 4px 1.5rem rgba(236, 209, 8, 0.7);
}

.btn.btn-event ._large, .gform_wrapper .btn-event.gform_button.button ._large, .btn-event.btn-flat ._large, .b-city-list a.btn-event ._large {
  font-size: 135%;
}

@media print, screen and (min-width: 48em) {
  .s-hero .btn.btn-event, .s-hero .gform_wrapper .btn-event.gform_button.button, .gform_wrapper .s-hero .btn-event.gform_button.button, .s-hero .btn-event.btn-flat, .s-hero .b-city-list a.btn-event, .b-city-list .s-hero a.btn-event {
    min-width: 45rem;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .btn.btn-event, .gform_wrapper .btn-event.gform_button.button, .btn-event.btn-flat, .b-city-list a.btn-event {
    font-size: 2.8rem;
  }
}

.slick-slider {
  -webkit-user-select: text;
  -khtml-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

.slick-list.draggable {
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.slider-progressive {
  opacity: 0;
  height: 0;
  visibility: hidden;
  transition: all .5s ease;
}

.slider-progressive.slick-initialized {
  opacity: 1;
  visibility: visible;
  height: auto;
}

.slick-slider.has-popover {
  position: relative;
  z-index: 50;
  overflow-y: visible;
}

.slick-slider.has-popover .slick-track, .slick-slider.has-popover .slick-list {
  overflow: visible;
}

.slick-slider.slider-visible .slick-track, .slick-slider.slider-visible .slick-list {
  overflow: visible;
}

.slick-dots {
  font-size: 0;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.slick-dots li {
  display: inline-block;
  padding: .5rem;
}

.slick-dots li.slick-active button {
  background: #fff;
}

.slick-dots li button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid #fff;
  background: transparent;
}

@media print, screen and (max-width: 89.99875em) {
  .slick-dots li {
    padding: .6rem;
  }
  .slick-dots li button {
    width: 12px;
    height: 12px;
  }
}

.b-section--hero .slick-dots {
  position: absolute;
  bottom: 3rem;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
}

.b-section--hero .b-slider, .b-section--hero .b-hero-slider {
  height: 100%;
}

.b-section--hero .b-slider.slick-initialized, .b-section--hero .b-hero-slider.slick-initialized {
  opacity: 1;
  visibility: visible;
}

@media print, screen and (max-width: 63.99875em) {
  .b-section--hero .b-hero-slider .slick-slide .slide-image {
    background-position: 70% 100%;
  }
  .b-section--hero .b-hero-slider .slick-slide video, .b-section--hero .b-hero-slider .slick-slide iframe, .b-section--hero .b-hero-slider .slick-slide .embed-player {
    pointer-events: none;
  }
  .b-section--hero .bg-img, .b-section--hero .slide-image {
    background-position: 70% 100%;
  }
}

@media print, screen and (max-width: 39.99875em) {
  .b-section--hero .slick-dots {
    transform: none;
    left: auto;
    right: 2rem;
    bottom: 2rem;
  }
}

.b-slider {
  position: relative;
}

.b-slider-wrp {
  padding-bottom: 4rem;
}

.b-slider .slick-nav {
  z-index: 50;
  position: absolute;
  color: #2C1C21;
  font-size: 1rem;
}

.b-slider .slick-nav:hover {
  opacity: .8;
}

.b-slider .slick-nav svg {
  width: 1.7em;
  height: 2.8em;
}

.b-slider .slick-nav.slick-prev {
  left: 2.5rem;
  bottom: 3.6rem;
  margin-left: 2.5rem;
}

.b-slider .slick-nav.slick-next {
  bottom: 4rem;
  right: 2.5rem;
  margin-right: 2.5rem;
}

@media print, screen and (max-width: 39.99875em) {
  .b-slider-wrp {
    padding-bottom: 2rem;
  }
  .b-slider-wrp:last-of-type {
    padding-bottom: 0;
  }
  .b-slider .slick-nav {
    margin: 0;
  }
  .b-slider .slick-nav.slick-prev {
    margin-left: 0;
    left: 2rem;
    bottom: 2rem;
  }
  .b-slider .slick-nav.slick-prev:before {
    content: '';
    position: absolute;
    left: -1rem;
    top: -66%;
    width: 4rem;
    height: 200%;
  }
  .b-slider .slick-nav.slick-next {
    margin-right: 0;
    right: 2rem;
    bottom: 2rem;
  }
  .b-slider .slick-nav.slick-next:before {
    content: '';
    position: absolute;
    right: -1rem;
    top: -66%;
    width: 4rem;
    height: 200%;
  }
}

.slider-item {
  padding-bottom: 4rem;
  position: relative;
}

.b-slider-news-thumb .slider-item {
  padding-bottom: 0;
}

.slider-item .img-wrp {
  border: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .slider-item .img-wrp {
    border-width: 4px;
  }
}

.slider-item__info {
  min-height: 11rem;
  text-align: center;
  padding: 1.4rem 6rem;
  z-index: 50;
  position: absolute;
  max-width: 100%;
  left: 2.5rem;
  right: 2.5rem;
  bottom: 0;
  background: #E5B16A;
  border: 6px solid #2C1C21;
}

@media print, screen and (max-width: 63.99875em) {
  .slider-item__info {
    border-width: 4px;
  }
}

@media print, screen and (max-width: 47.99875em) {
  .slider-item__info {
    min-height: 7rem;
  }
}

.slider-item__title {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-transform: uppercase;
  font-size: 4.5rem;
  margin-top: -.15em;
}

.slider-item__txt {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.1;
  color: #fff;
}

.slider-item__txt a {
  color: currentColor;
  text-decoration: underline;
}

.slider-item__txt a:hover {
  text-decoration: none;
}

@media print, screen and (max-width: 39.99875em) {
  .slider-item {
    padding-bottom: 0;
  }
  .slider-item__info {
    border-top: 0;
    bottom: 0;
    position: relative;
    left: 0;
    right: 0;
    padding-left: 4rem;
    padding-right: 4rem;
  }
  .slider-item__title {
    font-size: 2.4rem;
  }
  .slider-item__txt {
    font-size: 1.4rem;
  }
}

.b-slider-news-thumb {
  margin: -1.5rem;
}

.b-slider-news-thumb .img-wrp, .b-slider-news-thumb .slider-item__pic {
  transition: border-color .2s ease;
}

.b-slider-news-thumb .img-wrp {
  width: 100%;
  overflow: hidden;
  position: relative;
  height: 0;
  padding-bottom: 100%;
  padding-bottom: calc(100% - 12px);
}

@media print, screen and (max-width: 63.99875em) {
  .b-slider-news-thumb .img-wrp {
    padding-bottom: calc(100% - 8px);
  }
}

.b-slider-news-thumb .img-wrp > img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.b-slider-news-thumb .slick-slide > div {
  padding: 1.5rem;
}

.b-slider-news-thumb .slick-slide:hover {
  cursor: pointer;
}

.b-slider-news-thumb .slick-slide:hover .img-wrp, .b-slider-news-thumb .slick-slide:hover .slider-item__pic {
  border-color: #E5B16A;
}

@media print, screen and (max-width: 39.99875em) {
  .b-slider-news-thumb {
    margin: -.6rem;
  }
  .b-slider-news-thumb .slick-slide > div {
    padding: .6rem;
  }
}

.pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
}

.pagination .page-numbers {
  background: #FCF9E8;
  margin-left: 1rem;
  margin-right: 1rem;
  border: 0.6rem solid #2C1C21;
  min-width: 6rem;
  min-height: 6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  color: #2C1C21;
}

.pagination .page-numbers.current {
  background: #ECD108;
}

.pagination .page-numbers:hover {
  background: #E5B16A;
}

.pagination .page-numbers.prev, .pagination .page-numbers.next, .pagination .page-numbers.dots {
  border: none;
  margin-left: 0;
  margin-right: 0;
}

.pagination .page-numbers.prev:hover, .pagination .page-numbers.next:hover, .pagination .page-numbers.dots:hover {
  background: none;
}

.pagination .page-numbers.dots {
  min-width: 4rem;
}

.pagination .page-numbers.prev:hover, .pagination .page-numbers.next:hover {
  opacity: .7;
}

.pagination .page-numbers svg {
  width: 1em;
  height: 1em;
}

.pagination .page-numbers a, .pagination .page-numbers:link {
  color: currentColor;
}

.pagination .page-numbers a:hover, .pagination .page-numbers:link:hover {
  text-decoration: none;
}

.pagination .page-numbers a:hover, .pagination .page-numbers:link:hover {
  text-decoration: none;
}

@media print, screen and (max-width: 39.99875em) {
  .pagination .page-numbers {
    font-size: 2rem;
    min-width: 4rem;
    min-height: 4rem;
    border-width: 2px;
    margin-left: .5rem;
    margin-right: .5rem;
  }
  .pagination .page-numbers.dots, .pagination .page-numbers.prev, .pagination .page-numbers.next {
    min-width: 0;
  }
}

.s-showcase > div + div {
  margin-top: 5rem;
}

.s-showcase__list-row {
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.s-showcase__list-year {
  font-size: 4.5rem;
  margin-bottom: 2rem;
}

@media print, screen and (max-width: 39.99875em) {
  .s-showcase__list-year {
    margin-bottom: 5rem;
  }
}

.b-city-list {
  display: block;
  font-size: 0;
  margin: -1rem;
}

.b-city-list li {
  padding: 1rem;
  min-width: 20%;
}

.b-city-list a {
  font-family: "Mandatory-18", "Roboto", sans-serif;
  display: block;
}

.showcase-map #showcase-map {
  background: #f3f6fa;
}

.showcase-map .countries {
  position: absolute;
  left: 6px;
  top: 12px;
  z-index: 5;
  background: #fdfdfd;
  padding: 0;
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.05);
}

.showcase-map .countries .country-search {
  border: 0;
  padding: 1.5rem;
  font-size: 2.2rem;
  color: #ccc;
  box-shadow: 0 2px 5px 0px rgba(33, 33, 33, 0.05);
}

.showcase-map .countries .country-search::-webkit-input-placeholder {
  /* WebKit browsers */
  color: #ccc;
}

.showcase-map .countries .country-search:-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: #ccc;
}

.showcase-map .countries .country-search::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: #ccc;
}

.showcase-map .countries .country-search:-ms-input-placeholder {
  /* Internet Explorer 10+ */
  color: #ccc;
}

.showcase-map .countries li {
  padding: 0;
}

.showcase-map .countries li.current a, .showcase-map .countries li.selected a, .showcase-map .countries li:hover a {
  background: #f4f4f4;
}

.showcase-map .countries a {
  display: block;
  color: #636363;
  padding: 1.5rem;
}

.showcase-map .countries a:hover {
  color: #3b3b3b;
}

.showcase-map .countries a:hover {
  text-decoration: none;
}

.s-program__event {
  padding-top: 1rem;
  margin-top: -1rem;
}

.s-program__event .s-content__body {
  padding-bottom: 3rem;
}

.b-program-btn-list {
  font-size: 0;
  display: block;
  text-align: center;
  margin: 0 -1rem;
}

.b-program-btn-list._jazz .btn, .b-program-btn-list._jazz .gform_wrapper .gform_button.button, .gform_wrapper .b-program-btn-list._jazz .gform_button.button, .b-program-btn-list._jazz .btn-flat, .b-program-btn-list._jazz .b-city-list a, .b-city-list .b-program-btn-list._jazz a {
  background: var(--jazz-color);
}

.b-program-btn-list._rock .btn, .b-program-btn-list._rock .gform_wrapper .gform_button.button, .gform_wrapper .b-program-btn-list._rock .gform_button.button, .b-program-btn-list._rock .btn-flat, .b-program-btn-list._rock .b-city-list a, .b-city-list .b-program-btn-list._rock a {
  background: var(--rock-color);
}

.b-program-btn-list li {
  padding: 1rem;
  min-width: 20%;
}

.b-program-btn-list .btn, .b-program-btn-list .gform_wrapper .gform_button.button, .gform_wrapper .b-program-btn-list .gform_button.button, .b-program-btn-list .btn-flat, .b-program-btn-list .b-city-list a, .b-city-list .b-program-btn-list a {
  min-width: 21.6rem;
  font-weight: 400;
}

@media print, screen and (max-width: 39.99875em) {
  .b-program-btn-list .btn, .b-program-btn-list .gform_wrapper .gform_button.button, .gform_wrapper .b-program-btn-list .gform_button.button, .b-program-btn-list .btn-flat, .b-program-btn-list .b-city-list a, .b-city-list .b-program-btn-list a {
    min-width: 15rem;
  }
}

._bg-green, ._bg-jazz, .b-box-event._jazz .b-box-event__header, ._jazz .b-box-event .b-box-event__header {
  background: #56BF72;
  background: var(--jazz-color);
  color: #FCF9E8;
}

._bg-red, ._bg-rock, .b-box-event._rock .b-box-event__header, ._rock .b-box-event .b-box-event__header {
  background: #EDA298;
  background: var(--rock-color);
  color: #FCF9E8;
}

.theme--jazz .b-submenu, .theme--jazz .b-header__menu-nav ul .b-submenu {
  background: #56BF72;
  background: var(--jazz-color);
}

.theme--jazz ._style-bg {
  background: #56BF72;
  background: var(--jazz-color);
}

.theme--jazz ._style-color {
  color: #56BF72;
  color: var(--jazz-color);
}

.theme--rock .b-submenu, .theme--rock .b-header__menu-nav ul .b-submenu {
  background: #EDA298;
  background: var(--rock-color);
}

.theme--rock ._style-bg {
  background: #EDA298;
  background: var(--rock-color);
}

.theme--rock ._style-color {
  color: #EDA298;
  color: var(--rock-color);
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191dGlsLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL192YWx1ZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZGlyZWN0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fc2VsZWN0b3Iuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdHlwb2dyYXBoeS5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9fbWlzc2luZy1kZXBlbmRlbmNpZXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3RydWUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19wdXJnZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19yZW1vdmUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcmVwbGFjZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190by1saXN0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191dGlsLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZm9ybXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19zZWxlY3Quc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19yYW5nZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3Byb2dyZXNzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbWV0ZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jb2x1bW4uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3NpemUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NsYXNzZXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL194eS1ncmlkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ncmlkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19mcmFtZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY29sbGFwc2Uuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NsYXNzZXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmV2ZWFsLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RpdGxlLWJhci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxvYXQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcHJvdG90eXBlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JlbGF0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JveC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19yb3RhdGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC11dGlsaXRpZXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC10cmFuc2Zvcm1hdGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZm9udC1zdHlsaW5nLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2xpc3Qtc3R5bGUtdHlwZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19yb3VuZGVkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlcmVkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NoYWRvdy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19hcnJvdy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zZXBhcmF0b3Iuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fb3ZlcmZsb3cuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZGlzcGxheS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXItYm94LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlci1ub25lLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NpemluZy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zcGFjaW5nLnNjc3MiLCJhcHAvX19pbmRleC5zY3NzIiwiYXBwL2Jhc2UvX2Jhc2Uuc2NzcyIsImFwcC9iYXNlL19taXhpbnMuc2NzcyIsImFwcC9iYXNlL19hcHAtbWl4aW5zLnNjc3MiLCJhcHAvYmFzZS9fcmVzZXQuc2NzcyIsImFwcC9iYXNlL19oZWxwZXJzLnNjc3MiLCJhcHAvYmFzZS9fc2V0dGluZ3Muc2NzcyIsImFwcC9iYXNlL19mb250ZmFjZS5zY3NzIiwiYXBwL2NvbXBvbmVudHMvX19pbmRleC5zY3NzIiwiYXBwL2NvbXBvbmVudHMvX2FuaW1hdGUuc2NzcyIsImFwcC9jb21wb25lbnRzL2ZvbnRmYWNlL19faW5kZXguc2NzcyIsImFwcC9jb21wb25lbnRzL2ZvbnRmYWNlL19mb250LWF3ZXNvbWUuc2NzcyIsImFwcC9jb21wb25lbnRzL190eXBvLnNjc3MiLCJhcHAvY29tcG9uZW50cy9fbGF5b3V0LnNjc3MiLCJhcHAvY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJhcHAvY29tcG9uZW50cy9fZm9vdGVyLnNjc3MiLCJhcHAvY29tcG9uZW50cy9mb3JtL19faW5kZXguc2NzcyIsImFwcC9jb21wb25lbnRzL2Zvcm0vX2Zvcm0uc2NzcyIsImFwcC9jb21wb25lbnRzL19uYXYuc2NzcyIsImFwcC9jb21wb25lbnRzL19tb2RhbC5zY3NzIiwiYXBwL2NvbXBvbmVudHMvX3NlY3Rpb24uc2NzcyIsImFwcC9jb21wb25lbnRzL19ib3guc2NzcyIsImFwcC9jb21wb25lbnRzL19idG4uc2NzcyIsImFwcC9jb21wb25lbnRzL19zbGlkZS5zY3NzIiwiYXBwL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsImFwcC9jb21wb25lbnRzL19zaG93Y2FzZS5zY3NzIiwiYXBwL2NvbXBvbmVudHMvX3Byb2dyYW0uc2NzcyIsImFwcC9jb21wb25lbnRzL190aGVtZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJzZXR0aW5nc1wiO1xyXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCJmb3VuZGF0aW9uXCI7XHJcbkBpbXBvcnQgXCJhcHAvX2luZGV4XCI7XHJcbiIsIi8vICBGb3VuZGF0aW9uIGZvciBTaXRlcyBTZXR0aW5nc1xyXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy9cclxuLy8gIFRhYmxlIG9mIENvbnRlbnRzOlxyXG4vL1xyXG4vLyAgIDEuIEdsb2JhbFxyXG4vLyAgIDIuIEJyZWFrcG9pbnRzXHJcbi8vICAgMy4gVGhlIEdyaWRcclxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcclxuLy8gICA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcclxuLy8gICA2LiBBYmlkZVxyXG4vLyAgIDcuIEFjY29yZGlvblxyXG4vLyAgIDguIEFjY29yZGlvbiBNZW51XHJcbi8vICAgOS4gQmFkZ2VcclxuLy8gIDEwLiBCcmVhZGNydW1ic1xyXG4vLyAgMTEuIEJ1dHRvblxyXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxyXG4vLyAgMTMuIENhbGxvdXRcclxuLy8gIDE0LiBDYXJkXHJcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXHJcbi8vICAxNi4gRHJpbGxkb3duXHJcbi8vICAxNy4gRHJvcGRvd25cclxuLy8gIDE4LiBEcm9wZG93biBNZW51XHJcbi8vICAxOS4gRm9ybXNcclxuLy8gIDIwLiBMYWJlbFxyXG4vLyAgMjEuIE1lZGlhIE9iamVjdFxyXG4vLyAgMjIuIE1lbnVcclxuLy8gIDIzLiBNZXRlclxyXG4vLyAgMjQuIE9mZi1jYW52YXNcclxuLy8gIDI1LiBPcmJpdFxyXG4vLyAgMjYuIFBhZ2luYXRpb25cclxuLy8gIDI3LiBQcm9ncmVzcyBCYXJcclxuLy8gIDI4LiBSZXNwb25zaXZlIEVtYmVkXHJcbi8vICAyOS4gUmV2ZWFsXHJcbi8vICAzMC4gU2xpZGVyXHJcbi8vICAzMS4gU3dpdGNoXHJcbi8vICAzMi4gVGFibGVcclxuLy8gIDMzLiBUYWJzXHJcbi8vICAzNC4gVGh1bWJuYWlsXHJcbi8vICAzNS4gVGl0bGUgQmFyXHJcbi8vICAzNi4gVG9vbHRpcFxyXG4vLyAgMzcuIFRvcCBCYXJcclxuXHJcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XHJcblxyXG4vLyAxLiBHbG9iYWxcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogNjIuNSU7XHJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDE0NDApO1xyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuMjU7XHJcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcclxuICAgICAgICBwcmltYXJ5OiAjMTc3OWJhLFxyXG4gICAgICAgIHNlY29uZGFyeTogIzc2NzY3NixcclxuICAgICAgICBzdWNjZXNzOiAjM2FkYjc2LFxyXG4gICAgICAgIHdhcm5pbmc6ICNmZmFlMDAsXHJcbiAgICAgICAgYWxlcnQ6ICNjYzRiMzcsXHJcbik7XHJcblxyXG4kY29sb3I6IChcclxuICAgICAgICBwcmltYXJ5OiAjMmUyZTQ0LFxyXG4gICAgICAgIHJlZDogI2NjMzMzMyxcclxuICAgICAgICBibHVlOiAjM2E0MTg1LFxyXG4gICAgICAgIGdyZWVuOiAjMzZjYzYwLFxyXG4gICAgICAgIHRleHQ6ICMzNjM2MzYsXHJcbiAgICAgICAgYm9yZGVyOiNlN2U3ZTdcclxuKTtcclxuJHNoYWRvdzogKFxyXG4gICAgICAgIHRleHQ6IDBweCAxcHggM3B4IHJnYmEoOTEsIDkxLCA5MSwgMSksXHJcbiAgICAgICAgYm94OiAwcHggMXB4IDNweCAwLjA2cHggcmdiYSg5MSwgOTEsIDkxLCAxKVxyXG4pO1xyXG4kbGlnaHQtZ3JheTogI2U2ZTZlNjtcclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xyXG4kZGFyay1ncmF5OiAjOGE4YThhO1xyXG4kYmxhY2s6ICMwYTBhMGE7XHJcbiR3aGl0ZTogI2ZlZmVmZTtcclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2s7XHJcbiRib2R5LWZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcclxuJGJvZHktZm9udC1mYW1pbHkyOiAnUm9ib3RvJywnUGFudG9uJywgc2Fucy1zZXJpZjtcclxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XHJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtO1xyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XHJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogMzAwO1xyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xyXG4kZ2xvYmFsLXJhZGl1czogMDtcclxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xyXG4kZ2xvYmFsLWZsZXhib3g6IGZhbHNlO1xyXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XHJcblxyXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XHJcblxyXG4vLyAyLiBCcmVha3BvaW50c1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgICAgICAgc21hbGw6IDAsXHJcbiAgICAgICAgbWVkaXVtOiA2NDBweCxcclxuICAgICAgICB0YWJsZXQ6IDc2OHB4LFxyXG4gICAgICAgIGxhcmdlOiAxMDI0cHgsXHJcbiAgICAgICAgeGxhcmdlOiAxNDQwcHgsXHJcbiAgICAgICAgeHhsYXJnZTogMTkyMHB4LFxyXG4pO1xyXG4kcHJpbnQtYnJlYWtwb2ludDogdGFibGV0O1xyXG4kcHJpbnQtYnJlYWtwb2ludDogeGxhcmdlO1xyXG4kcHJpbnQtYnJlYWtwb2ludDogeHhsYXJnZTtcclxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSB0YWJsZXQgbGFyZ2UgeGxhcmdlIHh4bGFyZ2UpO1xyXG5cclxuLy8gMy4gVGhlIEdyaWROXHJcbi8vIC0tLS0tLS0tLS0tXHJcblxyXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XHJcbiRncmlkLWNvbHVtbi1jb3VudDogMTI7XHJcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcclxuICAgICAgICBzbWFsbDogMzBweCxcclxuICAgICAgICBtZWRpdW06IDMwcHgsXHJcbik7XHJcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xyXG4kYmxvY2stZ3JpZC1tYXg6IDg7XHJcblxyXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcclxuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcclxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2U7XHJcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XHJcbiRoZWFkZXItbGluZWhlaWdodDogMS40O1xyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuJGhlYWRlci1zdHlsZXM6IChcclxuICAgICAgICBzbWFsbDogKFxyXG4gICAgICAgICAgICAgICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXHJcbiAgICAgICAgICAgICAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcclxuICAgICAgICAgICAgICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxyXG4gICAgICAgICAgICAgICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXHJcbiAgICAgICAgICAgICAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcclxuICAgICAgICAgICAgICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgbWVkaXVtOiAoXHJcbiAgICAgICAgICAgICAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcclxuICAgICAgICAgICAgICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxyXG4gICAgICAgICAgICAgICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXHJcbiAgICAgICAgICAgICAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcclxuICAgICAgICAgICAgICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxyXG4gICAgICAgICAgICAgICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXHJcbiAgICAgICAgKSxcclxuKTtcclxuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xyXG4kc21hbGwtZm9udC1zaXplOiA4MCU7XHJcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XHJcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xyXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XHJcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XHJcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XHJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcclxuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XHJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XHJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XHJcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xyXG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XHJcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XHJcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcclxuXHJcbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xyXG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XHJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40O1xyXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtO1xyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XHJcblxyXG4vLyA2LiBBYmlkZVxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJGFiaWRlLWlucHV0czogdHJ1ZTtcclxuJGFiaWRlLWxhYmVsczogdHJ1ZTtcclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuXHJcbi8vIDcuIEFjY29yZGlvblxyXG4vLyAtLS0tLS0tLS0tLS1cclxuXHJcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xyXG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XHJcblxyXG4vLyA4LiBBY2NvcmRpb24gTWVudVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xyXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweDtcclxuXHJcbi8vIDkuIEJhZGdlXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xyXG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XHJcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XHJcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XHJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcclxuXHJcbi8vIDEwLiBCcmVhZGNydW1ic1xyXG4vLyAtLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XHJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XHJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZTtcclxuXHJcbi8vIDExLiBCdXR0b25cclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtO1xyXG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XHJcbiRidXR0b24tZmlsbDogc29saWQ7XHJcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xyXG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrO1xyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRidXR0b24tc2l6ZXM6IChcclxuICAgICAgICB0aW55OiAwLjZyZW0sXHJcbiAgICAgICAgc21hbGw6IDAuNzVyZW0sXHJcbiAgICAgICAgZGVmYXVsdDogMC45cmVtLFxyXG4gICAgICAgIGxhcmdlOiAxLjI1cmVtLFxyXG4pO1xyXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XHJcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJTtcclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlO1xyXG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xyXG5cclxuLy8gMTIuIEJ1dHRvbiBHcm91cFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4O1xyXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XHJcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZTtcclxuXHJcbi8vIDEzLiBDYWxsb3V0XHJcbi8vIC0tLS0tLS0tLS0tXHJcblxyXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlO1xyXG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XHJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcclxuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XHJcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xyXG5cclxuLy8gMTQuIENhcmRcclxuLy8gLS0tLS0tLS1cclxuXHJcbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XHJcbiRjYXJkLXNoYWRvdzogbm9uZTtcclxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuJGNhcmQtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcclxuXHJcbi8vIDE1LiBDbG9zZSBCdXR0b25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XHJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxyXG4gICAgICAgIHNtYWxsOiAwLjY2cmVtLFxyXG4gICAgICAgIG1lZGl1bTogMXJlbSxcclxuKTtcclxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxyXG4gICAgICAgIHNtYWxsOiAwLjMzZW0sXHJcbiAgICAgICAgbWVkaXVtOiAwLjVyZW0sXHJcbik7XHJcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXHJcbiAgICAgICAgc21hbGw6IDEuNWVtLFxyXG4gICAgICAgIG1lZGl1bTogMmVtLFxyXG4pO1xyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcclxuXHJcbi8vIDE2LiBEcmlsbGRvd25cclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xyXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xyXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHJcbi8vIDE3LiBEcm9wZG93blxyXG4vLyAtLS0tLS0tLS0tLS1cclxuXHJcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xyXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcclxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRkcm9wZG93bi1zaXplczogKFxyXG4gICAgICAgIHRpbnk6IDEwMHB4LFxyXG4gICAgICAgIHNtYWxsOiAyMDBweCxcclxuICAgICAgICBsYXJnZTogNDAwcHgsXHJcbik7XHJcblxyXG4vLyAxOC4gRHJvcGRvd24gTWVudVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWU7XHJcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XHJcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xyXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XHJcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuXHJcbi8vIDE5LiBGb3Jtc1xyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XHJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XHJcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KTtcclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XHJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcclxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYztcclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xyXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xyXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGlucHV0LWNvbG9yOiAkYmxhY2s7XHJcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xyXG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcclxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGU7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXk7XHJcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcclxuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XHJcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkO1xyXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XHJcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XHJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDIwLiBMYWJlbFxyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJGxhYmVsLWNvbG9yOiAkd2hpdGU7XHJcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcclxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XHJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDIxLiBNZWRpYSBPYmplY3RcclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XHJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xyXG5cclxuLy8gMjIuIE1lbnVcclxuLy8gLS0tLS0tLS1cclxuXHJcbiRtZW51LW1hcmdpbjogMDtcclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbTtcclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpO1xyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XHJcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XHJcbiRtZW51LWJvcmRlcjogJGxpZ2h0LWdyYXk7XHJcblxyXG4vLyAyMy4gTWV0ZXJcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xyXG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XHJcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3I7XHJcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xyXG5cclxuLy8gMjQuIE9mZi1jYW52YXNcclxuLy8gLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRvZmZjYW52YXMtc2l6ZTogMjUwcHg7XHJcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZTogMjUwcHg7XHJcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KTtcclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTtcclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTA7XHJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTtcclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcclxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XHJcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XHJcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XHJcblxyXG4vLyAyNS4gT3JiaXRcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XHJcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xyXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcclxuXHJcbi8vIDI2LiBQYWdpbmF0aW9uXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZTtcclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xyXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xyXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xyXG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcclxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xyXG5cclxuLy8gMjcuIFByb2dyZXNzIEJhclxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xyXG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyAyOC4gUmVzcG9uc2l2ZSBFbWJlZFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMCk7XHJcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxyXG4gICAgICAgIGRlZmF1bHQ6IDQgYnkgMyxcclxuICAgICAgICBwb3J0cmFpdDogMyBieSA0LjUsXHJcbiAgICAgICAgc3F1YXJlOiAxIGJ5IDAuODgsXHJcbiAgICAgICAgZXZlbnQ6IDEgYnkgMC43MixcclxuICAgICAgICBtZWRpYS1zcXVhcmU6IDEgYnkgMSxcclxuICAgICAgICBtZWRpYS1wb3J0cmFpdDogMSBieSAxLjIsXHJcbiAgICAgICAgY2lyY2xlOiAxIGJ5IDEsXHJcbiAgICAgICAgd2lkZTogMSBieSAwLjY0LFxyXG4gICAgICAgIHdpZGVzY3JlZW46IDE2IGJ5IDksXHJcbiAgICAgICAgY2luZW1hOiAyMSBieSA5LFxyXG4gICAgICAgIHBhbm9yYW1hOiAzNSBieSA5LFxyXG4pO1xyXG5cclxuLy8gMjkuIFJldmVhbFxyXG4vLyAtLS0tLS0tLS0tXHJcblxyXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHJldmVhbC13aWR0aDogNjAwcHg7XHJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHJldmVhbC16aW5kZXg6IDEwMDU7XHJcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40KTtcclxuXHJcbi8vIDMwLiBTbGlkZXJcclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xyXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xyXG4kc2xpZGVyLWhlaWdodDogMC41cmVtO1xyXG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbTtcclxuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcclxuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcclxuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMzEuIFN3aXRjaFxyXG4vLyAtLS0tLS0tLS0tXHJcblxyXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XHJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtO1xyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW07XHJcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtO1xyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcclxuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW07XHJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcclxuXHJcbi8vIDMyLiBUYWJsZVxyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XHJcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xyXG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XHJcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XHJcbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlO1xyXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcclxuJHRhYmxlLXN0cmlwZTogZXZlbjtcclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xyXG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcclxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcclxuXHJcbi8vIDMzLiBUYWJzXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kdGFiLW1hcmdpbjogMDtcclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcclxuJHRhYi1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XHJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcclxuJHRhYi1leHBhbmQtbWF4OiA2O1xyXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcclxuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcclxuXHJcbi8vIDM0LiBUaHVtYm5haWxcclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XHJcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XHJcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xyXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XHJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDM1LiBUaXRsZSBCYXJcclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjaztcclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XHJcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XHJcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xyXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xyXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xyXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xyXG5cclxuLy8gMzYuIFRvb2x0aXBcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXk7XHJcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW07XHJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMzcuIFRvcCBCYXJcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xyXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kO1xyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcclxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bTtcclxuXHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5AaW1wb3J0ICd1bml0JztcbkBpbXBvcnQgJ3ZhbHVlJztcbkBpbXBvcnQgJ2RpcmVjdGlvbic7XG5AaW1wb3J0ICdjb2xvcic7XG5AaW1wb3J0ICdzZWxlY3Rvcic7XG5AaW1wb3J0ICdmbGV4JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHknO1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDE2KSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzIgOiBwb3coMTAsICRwcmVjKTtcbiAgICAkZXhwb25lbnQ6IHJvdW5kKCRleHBvbmVudCAqICRwcmVjMik7XG4gICAgJGRlbm9taW5hdG9yOiBnY2QoJGV4cG9uZW50LCAkcHJlYzIpO1xuICAgIEByZXR1cm4gbnRoLXJvb3QocG93KCRiYXNlLCBkaXZpZGUoJGV4cG9uZW50LCAkZGVub21pbmF0b3IpKSwgZGl2aWRlKCRwcmVjMiwgJGRlbm9taW5hdG9yKSwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6IGRpdmlkZSgkdmFsdWUsICRiYXNlKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIG50aC1yb290KCRudW0sICRuOiAyLCAkcHJlYzogMTIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL050aF9yb290I0phdmFTY3JpcHRcbiAgJHg6IDE7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkcHJlYyB7XG4gICAgJHg6IGRpdmlkZSgxLCAkbikgKiAoKCRuIC0gMSkgKiAkeCArIGRpdmlkZSgkbnVtLCBwb3coJHgsICRuIC0gMSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHg7XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSB3aWR0aCBmb3IgYSBnaXZlbiByYXRpby5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IHJlbGF0aXZlIHRvIHRoZSB3aWR0aCBvZiBhIHJlc3BvbnNpdmUgY29udGFpbmVyLlxuQGZ1bmN0aW9uIHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKSB7XG4gICR3OiBudGgoJHJhdGlvLCAxKTtcbiAgJGg6IG50aCgkcmF0aW8sIDMpO1xuICBAcmV0dXJuIGRpdmlkZSgkaCwgJHcpICogMTAwJTtcbn1cblxuLy8vIFBhcnNlIHRoZSBnaXZlbiBgJGZyYWN0aW9uYCB0byBudW1lcmF0b3JzIGFuZCBkZW51bWVyYXRvcnMuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICRmcmFjdGlvbiAtIFZhbHVlIHJlcHJlc2VudGluZyBhIGZyYWN0aW9uIHRvIHBhcnNlLiBJdCBjYW4gYmUgZm9ybWF0dGVkIGFzIGA1MCVgLCBgMSBvZiAyYCwgYDEvMmAgb3IgYDUwYCAobm8gZGVub21pbmF0b3Igd291bGQgYmUgcmV0dXJuZWQpLlxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gTGlzdCBvZiBwYXJzZWQgdmFsdWVzIHdpdGggbnVtZXJhdG9yIGF0IGZpcnN0IHBvc2l0aW9uIGFuZCBkZW51bWVyYXRvciBhcyBzZWNvbmQuIFRoZXNlIHZhbHVlcyBtYXkgYmUgbnVsbC5cbkBmdW5jdGlvbiB6Zi1wYXJzZS1mcmFjdGlvbigkZnJhY3Rpb24pIHtcblxuICBAaWYgdHlwZS1vZigkZnJhY3Rpb24pID09ICdudW1iZXInIHtcbiAgICAvLyBcIjUwJVwiXG4gICAgQGlmIHVuaXQoJGZyYWN0aW9uKSA9PSAnJScge1xuICAgICAgQHJldHVybiAoc3RyaXAtdW5pdCgkZnJhY3Rpb24pLCAxMDApO1xuICAgIH1cbiAgICBAZWxzZSBpZiAodW5pdCgkZnJhY3Rpb24pID09ICcnKSB7XG4gICAgICAvLyBcIjAuNVwiXG4gICAgICBAaWYgJGZyYWN0aW9uIDwgMSB7XG4gICAgICAgIEByZXR1cm4gKCRmcmFjdGlvbiAqIDEwMCwgMTAwKTtcbiAgICAgIH1cbiAgICAgIC8vIFwiNTBcIlxuICAgICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICgkZnJhY3Rpb24sIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZyYWN0aW9uKSA9PSAnbGlzdCcge1xuICAgIC8vIFwiNTAgb2YgMTAwXCIsIFwiNTAvMTAwXCIuLi5cbiAgICBAaWYgbGVuZ3RoKCRmcmFjdGlvbikgPT0gM1xuICAgICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMSkgPT0gJ251bWJlcicpXG4gICAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAzKSA9PSAnbnVtYmVyJykge1xuICAgICAgQHJldHVybiAobnRoKCRmcmFjdGlvbiwgMSksIG50aCgkZnJhY3Rpb24sIDMpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIChudWxsLCBudWxsKTtcbn1cblxuLy8vIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLiBTdXBwb3J0cyBmb3JtYXRzIGxpa2UgYDUwJWAsIGAxIG9mIDJgLCBgMSBwZXIgMmAgb3IgYDEvMmAuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFZhbHVlIHRvIHRlc3QuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYWxsb3ctbm8tZGVub21pbmF0b3IgW2ZhbHNlXSAtIElmIGB0cnVlYCwgc2ltcGxlIG51bWJlcnMgd2l0aG91dCBkZW5vbWluYXRvcnMgbGlrZSBgNTBgIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbkBmdW5jdGlvbiB6Zi1pcy1mcmFjdGlvbigkdmFsdWUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogZmFsc2UpIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJHZhbHVlKTtcbiAgQHJldHVybiBub3QobnRoKCRwYXJzZWQsIDEpID09IG51bGxcbiAgICBvciAobnRoKCRwYXJzZWQsIDIpID09IG51bGwgYW5kICRhbGxvdy1uby1kZW5vbWluYXRvciA9PSBmYWxzZSkpO1xufVxuXG4vLy8gQ2FsY3VsYXRlIGEgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gZnJhY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlLCBmb3JtYXR0ZWQgYXMgYDUwYCAocmVsYXRpdmUgdG8gYCRkZW5vbWluYXRvcmApLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGRlbm9taW5hdG9yIC0gRGVmYXVsdCB2YWx1ZSB0byB1c2UgYXMgZGVub21pbmF0b3Igd2hlbiBgJGZyYWN0aW9uYCByZXByZXNlbnRzIGFuIGFic29sdXRlIHZhbHVlLlxuQGZ1bmN0aW9uIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoXG4gICRmcmFjdGlvbixcbiAgJGRlbm9taW5hdG9yOiBudWxsXG4pIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKTtcbiAgJHBhcnNlZC1ub21pbmF0b3I6IG50aCgkcGFyc2VkLCAxKTtcbiAgJHBhcnNlZC1kZW5vbWluYXRvcjogbnRoKCRwYXJzZWQsIDIpO1xuXG4gIEBpZiAkcGFyc2VkLW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG4gIEBpZiAkcGFyc2VkLWRlbm9taW5hdG9yID09IG51bGwge1xuICAgIEBpZiB0eXBlLW9mKCRkZW5vbWluYXRvcikgPT0gJ251bWJlcicge1xuICAgICAgJHBhcnNlZC1kZW5vbWluYXRvcjogJGRlbm9taW5hdG9yO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0Vycm9yIHdpdGggXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gQSBkZWZhdWx0IFwiJGRlbm9taW5hdG9yXCIgaXMgcmVxdWlyZWQgdG8gc3VwcG9ydCBhYnNvbHV0ZSB2YWx1ZXMnO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gcGVyY2VudGFnZShkaXZpZGUoJHBhcnNlZC1ub21pbmF0b3IsICRwYXJzZWQtZGVub21pbmF0b3IpKTtcbn1cblxuLy8vIERpdmlkZSB0aGUgZ2l2ZW4gYCRkaXZpZGVudGAgYnkgdGhlIGdpdmVuIGAkZGl2aXNvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGRpdmlkZW50IC0gVGhlIGRpdmlkZW50LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGl2aXNvciAtIFRoZSBkaXZpc29yLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHJlY2lzaW9uIC0gVGhlIHByZWNpc2lvbiBkZWNpbWFscyBmb3IgdGhlIGRpdmlzaW9uLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZGl2aXNpb24uXG5AZnVuY3Rpb24gZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEyKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAgb3IgJGRpdmlkZW5kIDwgMCBhbmQgJGRpdmlzb3IgPCAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGRpdmlkZSBieSAwXCI7XG4gIH1cbiAgJHJlbWFpbmRlcjogJGRpdmlkZW5kO1xuICAkcmVzdWx0OiAwO1xuICAkZmFjdG9yOiAxMDtcbiAgQHdoaWxlICgkcmVtYWluZGVyID4gMCBhbmQgJHByZWNpc2lvbiA+PSAwKSB7XG4gICAgJHF1b3RpZW50OiAwO1xuICAgIEB3aGlsZSAoJHJlbWFpbmRlciA+PSAkZGl2aXNvcikge1xuICAgICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAtICRkaXZpc29yO1xuICAgICAgJHF1b3RpZW50OiAkcXVvdGllbnQgKyAxO1xuICAgIH1cbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyAkcXVvdGllbnQ7XG4gICAgJGZhY3RvcjogJGZhY3RvciAqIC4xO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgKiAxMDtcbiAgICAkcHJlY2lzaW9uOiAkcHJlY2lzaW9uIC0gMTtcbiAgICBAaWYgKCRwcmVjaXNpb24gPCAwIGFuZCAkcmVtYWluZGVyID49ICRkaXZpc29yICogNSkge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIDE7XG4gICAgfVxuICB9XG4gICRyZXN1bHQ6ICRyZXN1bHQgKiAkZmFjdG9yICogJHNpZ247XG4gICRkaXZpZGVuZC11bml0OiB1bml0KCRkaXZpZGVuZCk7XG4gICRkaXZpc29yLXVuaXQ6IHVuaXQoJGRpdmlzb3IpO1xuICAkdW5pdC1tYXA6IChcbiAgICBcInB4XCI6IDFweCxcbiAgICBcInJlbVwiOiAxcmVtLFxuICAgIFwiZW1cIjogMWVtLFxuICAgIFwiJVwiOiAxJVxuICApO1xuICBAaWYgKCRkaXZpZGVuZC11bml0ICE9ICRkaXZpc29yLXVuaXQgYW5kIG1hcC1oYXMta2V5KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpKSB7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIG1hcC1nZXQoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kdW5pdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiBkaXZpZGUoJG51bSwgJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6IGRpdmlkZSgkYmFzZSwgMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAaWYgJHVuaXQtd2FybmluZ3Mge1xuICAgICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIH1cbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IGRpdmlkZShzdHJpcC11bml0KCR2YWx1ZSksIHN0cmlwLXVuaXQoJGJhc2UpKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogZGl2aWRlKCRiYXNlLCAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXQncyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6IGRpdmlkZSgkdmFsdWUsIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gZGl2aWRlKHN0cmlwLXVuaXQoJHZhbHVlKSwgc3RyaXAtdW5pdCgkYmFzZSkpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXIgdGhhbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiBkaXZpZGUoJHZhbHVlLCBzdHJpcC11bml0KCRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIERldGVybWluZSBpZiBhIHZhbHVlIGlzIG5vdCBmYWxzZXksIGluIENTUyB0ZXJtcy4gRmFsc2V5IHZhbHVlcyBhcmUgYG51bGxgLCBgbm9uZWAsIGAwYCB3aXRoIGFueSB1bml0LCBvciBhbiBlbXB0eSBsaXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJHZhbCAtIFZhbHVlIHRvIGNoZWNrLlxuLy8vXG4vLy8gQHJldHVybnMge0Jvb2xlYW59IGB0cnVlYCBpZiBgJHZhbGAgaXMgbm90IGZhbHNleS5cbkBmdW5jdGlvbiBoYXMtdmFsdWUoJHZhbCkge1xuICBAaWYgJHZhbCA9PSBudWxsIG9yICR2YWwgPT0gbm9uZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkdmFsKSA9PSAwIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEBpZiB0eXBlLW9mKCR2YWwpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCR2YWwpID09IDAge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8gRGV0ZXJtaW5lIGEgdG9wL3JpZ2h0L2JvdHRvbS9yaWdodCB2YWx1ZSBvbiBhIHBhZGRpbmcsIG1hcmdpbiwgZXRjLiBwcm9wZXJ0eSwgbm8gbWF0dGVyIGhvdyBtYW55IHZhbHVlcyB3ZXJlIHBhc3NlZCBpbi4gVXNlIHRoaXMgZnVuY3Rpb24gaWYgeW91IG5lZWQgdG8ga25vdyB0aGUgc3BlY2lmaWMgc2lkZSBvZiBhIHZhbHVlLCBidXQgZG9uJ3Qga25vdyBpZiB0aGUgdmFsdWUgaXMgdXNpbmcgYSBzaG9ydGhhbmQgZm9ybWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fE51bWJlcn0gJHZhbCAtIFZhbHVlIHRvIGFuYWx5emUuIFNob3VsZCBiZSBhIHNob3J0aGFuZCBzaXppbmcgcHJvcGVydHksIGUuZy4gXCIxZW0gMmVtIDFlbVwiXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdG8gcmV0dXJuLiBTaG91bGQgYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIHNpbmdsZSB2YWx1ZSBiYXNlZCBvbiBgJHZhbGAgYW5kIGAkc2lkZWAuXG5AZnVuY3Rpb24gZ2V0LXNpZGUoJHZhbCwgJHNpZGUpIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCR2YWwpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDEge1xuICAgIEByZXR1cm4gJHZhbDtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAxKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgKSwgJHNpZGUpO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDMge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAzKSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gNCB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgcmlnaHQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDMpLFxuICAgICAgbGVmdDogbnRoKCR2YWwsIDQpLFxuICAgICksICRzaWRlKTtcbiAgfVxufVxuXG4vLy8gR2l2ZW4gYm9yZGVyICR2YWwsIGZpbmQgYSBzcGVjaWZpYyBlbGVtZW50IG9mIHRoZSBib3JkZXIsIHdoaWNoIGlzICRlbGVtLiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAkZWxlbSBhcmUgd2lkdGgsIHN0eWxlLCBhbmQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWwgLSBCb3JkZXIgdmFsdWUgdG8gZmluZCBhIHZhbHVlIGluLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gLSBCb3JkZXIgY29tcG9uZW50IHRvIGV4dHJhY3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IElmIHRoZSB2YWx1ZSBleGlzdHMsIHJldHVybnMgdGhlIHZhbHVlLiBJZiB0aGUgdmFsdWUgaXMgbm90IGluIHRoZSBib3JkZXIgZGVmaW5pdGlvbiwgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgMHB4IHdpZHRoLCBzb2xpZCBzdHlsZSwgb3IgYmxhY2sgYm9yZGVyLlxuQGZ1bmN0aW9uIGdldC1ib3JkZXItdmFsdWUoJHZhbCwgJGVsZW0pIHtcbiAgLy8gRmluZCB0aGUgd2lkdGgsIHN0eWxlLCBvciBjb2xvciBhbmQgcmV0dXJuIGl0XG4gIEBlYWNoICR2IGluICR2YWwge1xuICAgICR0eXBlOiB0eXBlLW9mKCR2KTtcbiAgICBAaWYgJGVsZW0gPT0gd2lkdGggYW5kICR0eXBlID09ICdudW1iZXInIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICAgIEBpZiAkZWxlbSA9PSBzdHlsZSBhbmQgJHR5cGUgPT0gJ3N0cmluZycge1xuICAgICAgQHJldHVybiAkdjtcbiAgICB9XG4gICAgQGlmICRlbGVtID09IGNvbG9yIGFuZCAkdHlwZSA9PSAnY29sb3InIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmYXVsdHNcbiAgJGRlZmF1bHRzOiAoXG4gICAgd2lkdGg6IDAsXG4gICAgc3R5bGU6IHNvbGlkLFxuICAgIGNvbG9yOiAjMDAwLFxuICApO1xuXG4gIEByZXR1cm4gbWFwLWdldCgkZGVmYXVsdHMsICRlbGVtKTtcbn1cblxuLy8vIEZpbmRzIGEgdmFsdWUgaW4gYSBuZXN0ZWQgbWFwLlxuLy8vIEBsaW5rIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9kZWVwLWdldHNldC1tYXBzLyBEZWVwIEdldC9TZXQgaW4gTWFwc1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gcHVsbCBhIHZhbHVlIGZyb20uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXlzLi4uIC0gS2V5cyB0byB1c2Ugd2hlbiBsb29raW5nIGZvciBhIHZhbHVlLlxuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gIH1cbiAgQHJldHVybiAkbWFwO1xufVxuXG4vLy8gQ2FzdHMgYSBtYXAgaW50byBhIGxpc3QuXG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNC8wNC8yOC9jYXN0aW5nLW1hcC1pbnRvLWxpc3QvXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBwdWxsIGEgdmFsdWUgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBEZXBlbmRpbmcgb24gdGhlIGZsYWcsIHJldHVybnMgZWl0aGVyICRrZXlzIG9yICR2YWx1ZXMgb3IgYm90aC5cbkBmdW5jdGlvbiBtYXAtdG8tbGlzdCgkbWFwLCAka2VlcDogJ2JvdGgnKSB7XG4gICRrZWVwOiBpZihpbmRleCgna2V5cycgJ3ZhbHVlcycsICRrZWVwKSwgJGtlZXAsICdib3RoJyk7XG5cbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgICRrZXlzOiAoKTtcbiAgICAkdmFsdWVzOiAoKTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJG1hcCB7XG4gICAgICAka2V5czogYXBwZW5kKCRrZXlzLCAka2V5KTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdmFsKTtcbiAgICB9XG5cbiAgICBAaWYgJGtlZXAgPT0gJ2tleXMnIHtcbiAgICAgIEByZXR1cm4gJGtleXM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRrZWVwID09ICd2YWx1ZXMnIHtcbiAgICAgIEByZXR1cm4gJHZhbHVlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiB6aXAoJGtleXMsICR2YWx1ZXMpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYodHlwZS1vZigkbWFwKSAhPSAnbGlzdCcsICgkdmFsdWUsKSwgJG1hcCk7XG5cbn1cblxuLy8vIFJldHVybiBhIGpvaW4gb2YgdGhlIHR3byBnaXZlbiBzdHJpbmdzIGAkc3RyMWAgYW5kIGAkc3RyMmAuXG4vLy8gSWYgdGhlIHR3byBzdHJpbmdzIGFyZSBub3QgZW1wdHksIHRoZXkgYXJlIHNlcGFyYXRlZCBieSBgJGRlbGltaXRlcmAuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cjEgW251bGxdIC0gRmlyc3Qgc3RyaW5nIHRvIGpvaW4uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHIxIFtudWxsXSAtIFNlY29uZCBzdHJpbmcgdG8gam9pbi5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlbGltaXRlciBbbnVsbF0gLSBEZWxpbWlldGVyIGJldHdlZW4gYCRzdHIxYCBhbmQgYCRzdHIyYC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEpvaW4gb2YgYCRzdHIxYCwgYCRkZWxpbWl0ZXJgIGFuZCBgJHN0cjJgLlxuQGZ1bmN0aW9uIHpmLXN0ci1qb2luKFxuICAkc3RyMTogbnVsbCxcbiAgJHN0cjI6IG51bGwsXG4gICRkZWxpbWl0ZXI6IG51bGxcbikge1xuICAkcmV0OiAnJztcblxuICBAaWYgJHN0cjEgYW5kIHN0ci1sZW5ndGgoJHN0cjEpID4gMCB7XG4gICAgJHJldDogJHJldCArICRzdHIxO1xuXG4gICAgQGlmICRkZWxpbWl0ZXIgYW5kIHN0ci1sZW5ndGgoJGRlbGltaXRlcikgPiAwIGFuZCAkc3RyMiBhbmQgc3RyLWxlbmd0aCgkc3RyMikgPiAwIHtcbiAgICAgICRyZXQ6ICRyZXQgKyAkZGVsaW1pdGVyO1xuICAgIH1cbiAgfVxuICBAaWYgJHN0cjIgYW5kIHN0ci1sZW5ndGgoJHN0cjIpID4gMCB7XG4gICAgJHJldDogJHJldCArICRzdHIyO1xuICB9XG5cbiAgQHJldHVybiAkcmV0O1xufVxuXG4vLy8gU2FmZWx5IHJldHVybiBhIHZhbHVlIGZyb20gYSBtYXAuXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byByZXRyaWV2ZSBhIHZhbHVlIGZyb20uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBOYW1lIG9mIHRoZSBtYXAga2V5LlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEZvdW5kIHZhbHVlLlxuQGZ1bmN0aW9uIG1hcC1zYWZlLWdldCgkbWFwLCAka2V5KSB7XG4gIEBpZiAodHlwZS1vZigkbWFwKSA9PSAnbWFwJyBvciAodHlwZS1vZigkbWFwKSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkbWFwKSA9PSAwKSkge1xuICAgIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGVycm9yICdLZXk6IGAjeyRrZXl9YCBpcyBub3QgYXZhaWxhYmxlIGluIGAjeyRtYXB9YCc7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2AjeyRtYXB9YCBpcyBub3QgYSB2YWxpZCBtYXAnO1xuICB9XG59XG5cbi8vLyBDb252ZXJ0IHRoZSBnaXZlbiBgJHZhbGAgdG8gYSBCb29sZWFuLiBFbXB0eSB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgYXMgZmFsc2UuXG4vLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWwgLSBWYWx1ZSB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge0Jvb2xlYW59IENvbnZlcnRlZCBCb29sZWFuIHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1ib29sKCR2YWwpIHtcbiAgQHJldHVybiAkdmFsICE9IGZhbHNlIGFuZCBoYXMtdmFsdWUoJHZhbCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBSZXR1cm5zIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gb2YgJGRpclxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gVXNlZCBkaXJlY3Rpb24gYmV0d2VlbiBcInRvcFwiLCBcInJpZ2h0XCIsIFwiYm90dG9tXCIgYW5kIFwibGVmdFwiLlxuLy8vIEByZXR1cm4ge0tleXdvcmR9IE9wcG9zaXRlIGRpcmVjdGlvbiBvZiAkZGlyXG5AZnVuY3Rpb24gZGlyZWN0aW9uLW9wcG9zaXRlKFxuICAkZGlyXG4pIHtcbiAgJGRpcnM6ICh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpO1xuICAkcGxhY2U6IGluZGV4KCRkaXJzLCAkZGlyKTtcblxuICBAaWYgJHBsYWNlID09IG51bGwge1xuICAgIEBlcnJvciAnZGlyZWN0aW9uLW9wcG9zaXRlOiBJbnZhbGlkICRkaXIgcGFyYW1ldGVyLCBleHBlY3RlZCBhIHZhbHVlIGZyb20gXCIjeyRkaXJzfVwiLCBmb3VuZCBcIiN7JGRpcn1cIi4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSB0aGUgb3Bwb3NpdGUgcGxhY2UgaW4gYSBjaXJjbGUsIHdpdGggYSBzdGFydGluZyBpbmRleCBvZiAxXG4gICRsZW5ndGg6IGxlbmd0aCgkZGlycyk7XG4gICRkZW1pOiAkbGVuZ3RoICogMC41O1xuICAkb3Bwb3NpdGUtcGxhY2U6ICgoJHBsYWNlICsgJGRlbWkgLSAxKSAlICRsZW5ndGgpICsgMTtcblxuICBAcmV0dXJuIG50aCgkZGlycywgJG9wcG9zaXRlLXBsYWNlKTtcbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcblxuJGNvbnRyYXN0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuXG4kcHJpbWFyeS1jb2xvciAgIDogbnVsbCAhZGVmYXVsdDtcbiRzZWNvbmRhcnktY29sb3IgOiBudWxsICFkZWZhdWx0O1xuJHdhcm5pbmctY29sb3IgICA6IG51bGwgIWRlZmF1bHQ7XG4kYWxlcnQtY29sb3IgICAgIDogbnVsbCAhZGVmYXVsdDtcbiRzdWNjZXNzLWNvbG9yICAgOiBudWxsICFkZWZhdWx0O1xuLy8vL1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6IGRpdmlkZSgkcmdiLCAyNTUpO1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsIGRpdmlkZSgkcmdiLCAxMi45MiksIHBvdyhkaXZpZGUoJHJnYiArIDAuMDU1LCAxLjA1NSksIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86IGRpdmlkZSgkbHVtaW5hbmNlMSwgJGx1bWluYW5jZTIpO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IGRpdmlkZSgxLCAkcmF0aW8pO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgKiAwLjE7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgIG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHByaW1hcnktY29sb3I6ICMxNzc5YmEgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzZWNvbmRhcnktY29sb3I6ICM3Njc2NzYgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRzdWNjZXNzLWNvbG9yOiAjM2FkYjc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkd2FybmluZy1jb2xvcjogI2ZmYWUwMCAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJGFsZXJ0LWNvbG9yOiAjY2M0YjM3ICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEdlbmVyYXRlcyBhIHNlbGVjdG9yIHdpdGggZXZlcnkgdGV4dCBpbnB1dCB0eXBlLiBZb3UgY2FuIGFsc28gZmlsdGVyIHRoZSBsaXN0IHRvIG9ubHkgb3V0cHV0IGEgc3Vic2V0IG9mIHRob3NlIHNlbGVjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdHxLZXl3b3JkfSAkdHlwZXMgWygpXSAtIEEgbGlzdCBvZiB0ZXh0IGlucHV0IHR5cGVzIHRvIHVzZS4gTGVhdmUgYmxhbmsgdG8gdXNlIGFsbCBvZiB0aGVtLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG1vZGlmaWVyIFsnJ10gLSBBIG1vZGlmaWVyIHRvIGJlIGFwcGxpZWQgdG8gZWFjaCB0ZXh0IGlucHV0IHR5cGUgKGUuZy4gYSBjbGFzcyBvciBhIHBzZXVkby1jbGFzcykuIExlYXZlIGJsYW5rIHRvIGlnbm9yZS5cbkBmdW5jdGlvbiB0ZXh0LWlucHV0cygkdHlwZXM6ICgpLCAkbW9kaWZpZXI6ICcnKSB7XG4gICRyZXR1cm46ICgpO1xuXG4gICRhbGwtdHlwZXM6XG4gICAgdGV4dFxuICAgIHBhc3N3b3JkXG4gICAgZGF0ZVxuICAgIGRhdGV0aW1lXG4gICAgZGF0ZXRpbWUtbG9jYWxcbiAgICBtb250aFxuICAgIHdlZWtcbiAgICBlbWFpbFxuICAgIG51bWJlclxuICAgIHNlYXJjaFxuICAgIHRlbFxuICAgIHRpbWVcbiAgICB1cmxcbiAgICBjb2xvcjtcblxuICBAaWYgbm90IGhhcy12YWx1ZSgkdHlwZXMpIHtcbiAgICAkdHlwZXM6ICRhbGwtdHlwZXM7XG4gIH1cblxuICBAZWFjaCAkdHlwZSBpbiAkdHlwZXMge1xuICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCdbdHlwZT1cXCcjeyR0eXBlfVxcJ10jeyRtb2RpZmllcn0nKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuIiwiQGZ1bmN0aW9uIC16Zi1mbGV4LWp1c3RpZnkoJHRleHQtZGlyZWN0aW9uKXtcbiAgJC16Zi1mbGV4LWp1c3RpZnk6IChcbiAgICAnbGVmdCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtZW5kLCBmbGV4LXN0YXJ0KSxcbiAgICAncmlnaHQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LXN0YXJ0LCBmbGV4LWVuZCksXG4gICAgJ2NlbnRlcic6IGNlbnRlcixcbiAgICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICAgJ3NwYWNlZCc6IHNwYWNlLWFyb3VuZCxcbiAgKTtcblxuICBAcmV0dXJuICQtemYtZmxleC1qdXN0aWZ5O1xufVxuXG5cbiQtemYtZmxleC1hbGlnbjogKFxuICAndG9wJzogZmxleC1zdGFydCxcbiAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAnbWlkZGxlJzogY2VudGVyLFxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXG4pO1xuXG4kLXpmLWZsZXgtZGlyZWN0aW9uOiAoXG4gICdyb3cnOiByb3csXG4gICdyb3ctcmV2ZXJzZSc6IHJvdy1yZXZlcnNlLFxuICAnY29sdW1uJzogY29sdW1uLFxuICAnY29sdW1uLXJldmVyc2UnOiBjb2x1bW4tcmV2ZXJzZSxcbik7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggYnkgYWRkaW5nIGBkaXNwbGF5OiBmbGV4YCB0byB0aGUgZWxlbWVudC5cbkBtaXhpbiBmbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgaXRlbXMgd2l0aGluIGEgZmxleCBjb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQGlmICR4IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWp1c3RpZnksICR4KSB7XG4gICAgICAkeDogbWFwLWdldCgkLXpmLWZsZXgtanVzdGlmeSwgJHgpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR4fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgaG9yaXpvbnRhbCBhbGlnbm1lbnQuIFVzZSBsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5LCBvciBzcGFjZWQuJztcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xuICBhbGlnbi1pdGVtczogJHk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBhbGlnbi1zZWxmOiAkeTtcbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggY2hpbGQuIENoaWxkcmVuIHdpdGggbG93ZXIgbnVtYmVycyBhcHBlYXIgZmlyc3QgaW4gdGhlIGxheW91dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cbkBtaXhpbiBmbGV4LW9yZGVyKCRvcmRlcjogMCkge1xuICBvcmRlcjogJG9yZGVyO1xufVxuXG4vLy8gQ2hhbmdlIGZsZXgtZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtyb3ddIC0gRmxleCBkaXJlY3Rpb24gdG8gdXNlLiBDYW4gYmVcbi8vLyAgIC0gcm93IChkZWZhdWx0KTogc2FtZSBhcyB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSByb3ctcmV2ZXJzZTogb3Bwb3NpdGUgdG8gdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gY29sdW1uOiBzYW1lIGFzIHJvdyBidXQgdG9wIHRvIGJvdHRvbVxuLy8vICAgLSBjb2x1bW4tcmV2ZXJzZTogc2FtZSBhcyByb3ctcmV2ZXJzZSB0b3AgdG8gYm90dG9tXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLy9cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG5cbiQtemYtc2l6ZTogbnVsbDtcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgSGlEUEkgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMgZm9yIHJlc29sdXRpb25zLlxuLy8vIFZhbHVlcyBtdXN0IHJlcHJlc2VudCB0aGUgZGV2aWNlIHBpeGVscyAvIHdlYiBwaXhlbHMgcmF0aW9uIGFuZCBiZSB1bml0bGVzcyBvciBpbiBEUFBYLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzLWhpZHBpOiAoXG4gIGhpZHBpLTE6IDEsXG4gIGhpZHBpLTEtNTogMS41LFxuICBoaWRwaS0yOiAyLFxuICByZXRpbmE6IDIsXG4gIGhpZHBpLTM6IDNcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnVGhlIGZpcnN0IGtleSBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBtdXN0IGhhdmUgYSB2YWx1ZSBvZiBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gV2ViIHN0YW5kYXJkIFBpeGVscyBwZXIgaW5jaC4gKDFkZHB4IC8gJHN0ZC13ZWItZHBpKSA9IDFkcGlcbiAgLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdmFsdWVzLTMvI2Fic29sdXRlLWxlbmd0aHNcbiAgJHN0ZC13ZWItZHBpOiA5NjtcblxuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludFxuICAkYnAtbmV4dDogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1taW46IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtaW4td2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiBudWxsO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gSWYgbmFtZWQsIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbiAgJG5hbWU6IG51bGw7XG4gIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgSGlEUEkgYnJlYWtwb2ludFxuICAkaGlkcGk6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuXG4gIC8vIElmIGEgYnJlYWtwb2ludCBuYW1lIGlzIGdpdmVuLCBnZXQgaXRzIHZhbHVlIGZyb20gdGhlICRicmVha3BvaW50cy8kYnJlYWtwb2ludHMtaGlkcGkgbWFwLlxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH1cbiAgICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMtaGlkcGksICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMtaGlkcGksICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQtbnVtYmVyKCRicmVha3BvaW50cy1oaWRwaSwgJGJwKTtcbiAgICAgICRoaWRwaTogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciBgJGJyZWFrcG9pbnRzYCBvciBgJGJyZWFrcG9pbnRzLWhpZHBpYCBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkbmFtZSBhbmQgJGRpciA9PSAnb25seScge1xuICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ3VwJyBoYXZlIGEgbWluIGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAndXAnIHtcbiAgICAkYnAtbWluOiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICB9XG4gIC8vIE9ubHkgJ29ubHknIGFuZCAnZG93bicgaGF2ZSBhIG1heCBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIHZhbHVlLCB1c2UgaXQgYXMgbWF4IGxpbWl0LlxuICAgIEBpZiBub3QgJG5hbWUge1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgbmFtZWQsIHRoZSBtYXggbGltaXQgaXMgdGhlIGZvbGxvd2luZyBicmVha3BvaW50IC0gMXB4LlxuICAgIEBlbHNlIGlmICRicC1uZXh0IHtcbiAgICAgIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgICAgIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksICRicC1uZXh0IC0gZGl2aWRlKDEsICRzdGQtd2ViLWRwaSksIC16Zi1icC10by1lbSgkYnAtbmV4dCkgLSAwLjAwMTI1KTtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmF0ZSB0aGUgbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gbWluIGFuZCBtYXggbGltaXRzLlxuICBAaWYgJGhpZHBpIHtcbiAgICAvLyBHZW5lcmF0ZSB2YWx1ZXMgaW4gRFBJIGluc3RlYWQgb2YgRFBQWCBmb3IgYW4gSUU5LTExL09wZXJhIG1pbmkgY29tcGF0aWJpbGl0eS5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICAgICRicC1taW4tZHBpOiBpZigkYnAtbWluLCAkYnAtbWluICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1pbik7XG4gICAgJGJwLW1heC1kcGk6IGlmKCRicC1tYXgsICRicC1tYXggKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWF4KTtcbiAgICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCwgJy13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbycsICctd2Via2l0LW1heC1kZXZpY2UtcGl4ZWwtcmF0aW8nKSxcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4tZHBpLCAkYnAtbWF4LWRwaSwgJ21pbi1yZXNvbHV0aW9uJywgJ21heC1yZXNvbHV0aW9uJyksXG4gICAgICAnLCAnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4KTtcbiAgfVxufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIGFuZCBgJGJyZWFrcG9pbnRzLWhpZHBpYCBtYXBzLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gSWYgbXVsdGlwbGUgdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGdlbmVyYXRlIGEgbWVkaWEgcXVlcnkgZm9yIGVhY2ggb2YgdGhlbSBhcyBkZXNjcmliZWQgYWJvdmUuXG4vLy8gU2luY2UgdGhlIGNvbnRlbnQgaXMgZHVwbGljYXRlZCBmb3IgZWFjaCBicmVha3BvaW50LCB0aGlzIG1peGluIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBwcm9wZXJ0aWVzIHRoYXRcbi8vLyBjaGFuZ2UgYWNyb3NzIGJyZWFrcG9pbnRzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlcy4uLiAtIEJyZWFrcG9pbnQgbmFtZSBvciBweC9yZW0vZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlcy4uLikge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdmFsdWVzKSB7XG4gICAgJHZhbHVlOiBudGgoJHZhbHVlcywgJGkpO1xuICAgICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgbnRoKCR2YWx1ZSwgMSkpO1xuICAgICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuICAgIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICAgJGRpcjogaWYobGVuZ3RoKCR2YWx1ZSkgPiAxLCBudGgoJHZhbHVlLCAyKSwgdXApO1xuXG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuXG4gICAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gICAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICAgIEBpZiAkc3RyID09ICcnIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gICAgQGVsc2Uge1xuICAgICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgICAgLy8gZ2VuZXJhdGUgcHJpbnQgaWYgdGhlIGJyZWFrcG9pbnQgYWZmZWN0cyB0aGUgcHJpbnQtYnJlYWtwb2ludCAob3Igc21hbGxlcikuXG4gICAgICAvLyBUaGlzIG1lYW5zIHRoZSBjdXJyZW50IGNvbmRpdGlvbiBvbmx5IG5lZWRzIHRvIGJlIGV4dGVuZGVkIHNvICdkb3duJyBhbHdheXMgZ2VuZXJhdGVzIHByaW50LlxuICAgICAgQGlmICRicCAhPSBudWxsIGFuZCAoJGJwIDw9ICRwYnAgb3IgJGRpciA9PSBkb3duKSB7XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnRzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IG51bWJlciBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRudW1iZXIgLSBOdW1iZXIgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSBudW1iZXIgZm9sbG93aW5nIGAkbnVtYmVyYCwgaWYgYCRudW1iZXJgIHdhcyBmb3VuZC4gSWYgYCRudW1iZXJgIHdhcyBub3QgZm91bmQsIG9yIGAkbnVtYmVyYCB3YXMgdGhlIGJpZ2dlc3QgbnVtYmVyIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dC1udW1iZXIoJG1hcCwgJG51bWJlcikge1xuXG4gICRuZXh0X251bWJlcjogbnVsbDtcblxuICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09ICdudW1iZXInIGFuZCAkdiA+ICRudW1iZXIgYW5kICgkbmV4dF9udW1iZXIgPT0gbnVsbCBvciAkdiA8ICRuZXh0X251bWJlcikge1xuICAgICAgJG5leHRfbnVtYmVyOiAkdjtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXh0X251bWJlcjtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZF9rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmRfa2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZF9rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIHRoZSBiZXN0IGJyZWFrcG9pbnQgdG8gdXNlIGFjY29yZGluZyB0byB0aGUgY2FsbGluZyBjb250ZXh0LiBJdCByZXR1cm5zIGluIG9yZGVyOlxuLy8vIDEuIHRoZSBnaXZlbiBgJHZhbHVlYCBhcmd1bWVudCBpZiBpdCBpcyBub3QgbnVsbC5cbi8vLyAyLiB0aGUgZ2xvYmFsIGJyZWFrcG9pbnQgY29udGV4dCBgJC16Zi1zaXplYCBpZiBpdCBpcyBub3QgbnVsbCAobGlrZSBpZiBjYWxsZWQgaW5zaWRlIHRoZW4gYGJyZWFrcG9pbnQoKWAgbWl4aW4pXG4vLy8gMy4gdGhlIGdpdmVuIGAkZGVmYXVsdGAgYXJndW1lbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBpbiBwcmlvcml0eSBpZiBub24tbnVsbC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkZWZhdWx0IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgdmFsdWUgY2FuIGJlIHVzZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBUaGUgcmVzb2x2ZWQgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiAtemYtY3VycmVudC1icmVha3BvaW50KCR2YWx1ZTogbnVsbCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgQGlmICgkdmFsdWUgIT0gbnVsbCkge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICh2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgQHJldHVybiAkLXpmLXNpemU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQ7XG4gIH1cbn1cblxuLy8vIFJldHVybiBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gbWluIGFuZC9vciBtYXggbGltaXRzLlxuLy8vIElmIGEgbGltaXQgaXMgZXF1YWwgdG8gYG51bGxgIG9yIGAwYCwgaXQgaXMgaWdub3JlZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWluIFswXSAtIE1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCBbMF0gLSBNYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtaW4tbmFtZSBbJ21pbi13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyIFsnbWF4LXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtYXggbWVkaWEgcXVlcnkgbGltaXQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBNZWRpYSBRdWVyeSBzdHJpbmcuXG5AZnVuY3Rpb24gLXpmLWJwLWpvaW4oXG4gICRtaW46IDAsXG4gICRtYXg6IDAsXG4gICRtaW4tbmFtZTogJ21pbi13aWR0aCcsXG4gICRtYXgtbmFtZTogJ21heC13aWR0aCdcbikge1xuICBAcmV0dXJuIHpmLXN0ci1qb2luKFxuICAgIGlmKCRtaW4gYW5kICRtaW4gPiAwLCAnKCN7JG1pbi1uYW1lfTogI3skbWlufSknLCBudWxsKSxcbiAgICBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJygjeyRtYXgtbmFtZX06ICN7JG1heH0pJywgbnVsbCksXG4gICAgJyBhbmQgJyk7XG59XG5cbiRzbWFsbC11cDogJyc7XG4kc21hbGwtb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbiRtZWRpdW0tdXA6ICcnO1xuJG1lZGl1bS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG4kbGFyZ2UtdXA6ICcnO1xuJGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG4keGxhcmdlLXVwOiAnJztcbiR4bGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHh4bGFyZ2UtdXA6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vL1xuLy8vIFBhdGNoIHRvIGZpeCBpc3N1ZSAjMTIwODBcbiQtemYtcGItdmFsdWU6IG51bGw7XG5cbi8vLy9cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiBkaXZpZGUoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpLCAkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRpKSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogMXB4ICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogMXB4ICN7JGltcG9ydGFudH07XG4gIHBhZGRpbmc6IDAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiByZWN0KDAsMCwwLDApICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IHN0YXRpYyAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IHZpc2libGUgI3skaW1wb3J0YW50fTtcbiAgY2xpcDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoXG4gICRzbWFsbDogdHJ1ZSxcbiAgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbihhdXRvLCAtemYtYm9vbCgkc21hbGwpLCAtemYtYm9vbCgkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMpKSB7XG4gICAgQGNvbnRlbnRcbiAgfTtcbn1cblxuLy8vIEl0ZXJhdGVzIHdpdGggYEBjb250ZW50YCB0aHJvdWdoIHRoZSBnaXZlbiBsaXN0IG9mIGJyZWFrcG9pbnRzIGAkYnJlYWtwb2ludHNgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJyZWFrcG9pbnRzIFthdXRvXSAtIEJyZWFrcG9pbnRzIHRvIGl0ZXJhdGVzIG9uLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufE51bGx9ICR6ZXJvLWJyZWFrcG9pbnQgW251bGxdIC0gV2hldGhlciB0aGUgemVyby1icmVha3BvaW50IChvZnRlbiBgc21hbGxgKSBtdXN0IGJlIGluY2x1ZGVkLiBJZiBgdHJ1ZWAsIGl0IHdpbGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlLiBJZiBgZmFsc2VgLCBpdCB3aWxsIGFsd2F5cyBiZSByZW1vdmVkLiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58S2V5d29yZH0gJG1lZGlhLXF1ZXJpZXMgW3RydWVdIC0gV2hldGhlciBtZWRpYS1xdWVyaWVzIG11c3QgYmUgZ2VuZXJhdGVkLiBJZiBgZm9yLWxpc3RzYCwgb25seSBnZW5lcmF0ZSBtZWRpYS1xdWVyaWVzIHdoZW4gYCRicmVha3BvaW50c2AgaXMgYSBsaXN0LlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oXG4gICRicmVha3BvaW50czogYXV0byxcbiAgJHplcm8tYnJlYWtwb2ludDogbnVsbCxcbiAgJG1lZGlhLXF1ZXJpZXM6IHRydWVcbikge1xuICAkLWxpc3Q6ICgpO1xuICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogdHJ1ZTtcblxuICAvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBicmVha3BvaW50KHMpIHRvIGl0ZXJhdGUgb24uXG4gIEBpZiAkYnJlYWtwb2ludHMgPT0gYXV0byB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnbGlzdCcge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnRzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnc3RyaW5nJyB7XG4gICAgJC1saXN0OiAoJGJyZWFrcG9pbnRzKTtcbiAgICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogZmFsc2U7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcIiRicmVha3BvaW50c1wiIGluIFwiLXpmLWVhY2gtYnJlYWtwb2ludC1pbigpXCIuIEdvdCBcIiN7JGJyZWFrcG9pbnRzfVwiICgje3R5cGUtb2YoJGJyZWFrcG9pbnRzKX0pLiBFeHBlY3RlZCBhIGJyZWFrcG9pbnQgbmFtZSwgYSBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIFwiYXV0b1wiJztcbiAgfVxuXG4gIC8vIEFkZCBvciByZW1vdmUgdGhlIHplcm8gYnJlYWtwb2ludCBhY2NvcmRpbmcgdG8gYCR6ZXJvLWJyZWFrcG9pbnRgXG4gIEBpZiAkemVyby1icmVha3BvaW50ID09IHRydWUge1xuICAgICQtbGlzdDogam9pbigoJC16Zi16ZXJvLWJyZWFrcG9pbnQpLCBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCkpO1xuICB9XG4gIEBlbHNlIGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gZmFsc2Uge1xuICAgICQtbGlzdDogc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gSXRlcmF0ZSBvbiBicmVha3BvaW50KHMpXG4gIEBlYWNoICRicCBpbiAkLWxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJGJwICFnbG9iYWw7XG5cbiAgICBAaWYgKCRtZWRpYS1xdWVyaWVzID09IHRydWVcbiAgICAgIG9yICgkbWVkaWEtcXVlcmllcyA9PSAnZm9yLWxpc3RzJyBhbmQgJC1icmVha3BvaW50cy1pcy1hLWxpc3QpKSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkYnAtdmFsdWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICAgIEBpZiAkYnAtdmFsdWUgIT0gbnVsbCB7XG4gICAgICAgICRuYW1lOiAkYnAtdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJC16Zi1mb250LXN0YWNrOiAoXG4gICdnZW9yZ2lhJzogKEdlb3JnaWEsIFwiVVJXIEJvb2ttYW4gTFwiLCBzZXJpZiksXG4gICdoZWx2ZXRpY2EnOiAoSGVsdmV0aWNhLCBBcmlhbCwgXCJOaW1idXMgU2FucyBMXCIsIHNhbnMtc2VyaWYpLFxuICAnbHVjaWRhLWdyYW5kZSc6IChcIkx1Y2lkYSBHcmFuZGVcIiwgXCJMdWNpZGEgU2FucyBVbmljb2RlXCIsIFwiQml0c3RyZWFtIFZlcmEgU2Fuc1wiLCBzYW5zLXNlcmlmKSxcbiAgJ21vbm9zcGFjZSc6IChcIkNvdXJpZXIgTmV3XCIsIENvdXJpZXIsIFwiTmltYnVzIFNhbnMgTFwiLCBtb25vc3BhY2UpLFxuICAnc3lzdGVtJzogKC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiUm9ib3RvXCIsIFwiT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiQ2FudGFyZWxsXCIsIFwiRmlyYSBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiksXG4gICd2ZXJkYW5hJzogKFZlcmRhbmEsIEdlbmV2YSwgXCJEZWphVnUgU2Fuc1wiLCBzYW5zLXNlcmlmKSxcbik7XG5cbi8vLyBSZXR1cm4gYSBmb250IHN0YWNrIGxpc3QgZnJvbSBhIG1hcC4gRXF1aXZhbGVudCB0byBgbWFwLXNhZmUtZ2V0KCRuYW1lLCAkLXpmLWZvbnQtc3RhY2spYC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RhY2sgLSBOYW1lIG9mIHRoZSBmb250IHN0YWNrLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIFskLXpmLWZvbnQtc3RhY2tdIC0gTWFwIG9mIGZvbnQgc3RhY2tzIHRvIHJldHJpZXZlIGEgbGlzdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEZvdW5kIGZvbnQgc3RhY2suXG5AZnVuY3Rpb24gZm9udC1zdGFjaygkc3RhY2ssICRtYXA6ICQtemYtZm9udC1zdGFjaykge1xuICBAcmV0dXJuIG1hcC1zYWZlLWdldCgkbWFwLCAkc3RhY2spO1xufVxuIiwiJGZvbnQtZmFtaWx5LWJhc2U6ICdTaW1wbGVyUHJvX1YzJywnUm9ib3RvJywgc2Fucy1zZXJpZjtcclxuJGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcclxuJGZvbnQtZmFtaWx5LWZhbGxiYWNrOiBUYWhvbWEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiRmb250LWZhbWlseS10aXRsZTogJ01hbmRhdG9yeScsJ1JvYm90bycsIHNhbnMtc2VyaWY7XHJcbiRmb250LWZhbWlseS10aXRsZTI6ICdNYW5kYXRvcnktMTgnLCdSb2JvdG8nLCBzYW5zLXNlcmlmO1xyXG4kZm9udC1mYW1pbHkyOiAnU2ltcGxlclByb19WMycsJ1JvYm90bycsIHNhbnMtc2VyaWY7XHJcbiRsZXR0ZXItc3BhY2luZzogMGVtO1xyXG4kaHRtbC1mb250LXNpemU6IDYyLjUlO1xyXG4kZm9udC1zaXplLWJvZHk6IDEuOHJlbTtcclxuJGZvbnQtc2l6ZS1iYXNlOiAxLjhyZW07XHJcbiRiZy1jb2xvcjogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzJDMUMyMSAwJSwgIzU2QkY3MiA0OS42NSUsICMyQzFDMjEgMTAwJSk7XHJcblxyXG4kdGl0bGU6IChcclxuICAgICAgICBmczogNnJlbSxcclxuICAgICAgICBmcy1tZDogM3JlbSxcclxuICAgICAgICBmcy1zbTogM3JlbSxcclxuICAgICAgICBsaDogMS4xNVxyXG4pO1xyXG5cclxuJHNlY3Rpb246IChcclxuICAgICAgICBwYWRkaW5nOiAxMHJlbSxcclxuICAgICAgICBwYWRkaW5nLW1kOiA2cmVtLFxyXG4gICAgICAgIHBhZGRpbmctc206IDNyZW1cclxuKTtcclxuXHJcbiRjb250YWluZXItd2lkdGg6IDE1MHJlbTtcclxuJGNvbnRhaW5lci13aWR0aC1weDogMTUwMHB4O1xyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogNjIuNSU7XHJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDE1MDApO1xyXG5cclxuJGJvcmRlci1yYWRpdXMtYmFzZTogMHB4O1xyXG5cclxuJGZvb3Rlci1wYWRkaW5nLXRvcDogMHJlbTtcclxuJGZvb3Rlci1wYWRkaW5nLWJvdHRvbTogMTByZW07XHJcbiRmb290ZXItc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICogMC44O1xyXG5cclxuXHJcbiRjb2xvci1yZWQ6ICNFREEyOTg7XHJcbiRjb2xvci1yZWQtbGlnaHQ6ICNlMzcyNWI7XHJcbiRjb2xvci1yZWQtZm9ybTogI2UzNzI1YjtcclxuXHJcbiRjb2xvci1ibHVlOiAjNTA2MDg0O1xyXG4kY29sb3ItZGFyay1ibHVlOiAjMDA0NDVhO1xyXG4kY29sb3ItY3lhbjogIzM2RDFEQztcclxuJGNvbG9yLWdyZWVuOiAjNTZCRjcyOy8vMTg5Nzc5XHJcbiRjb2xvci15ZWxsb3c6ICNFQ0QxMDg7XHJcbiRjb2xvci1waW5rOiAjRDgwMDc4O1xyXG4kY29sb3ItZ3JlZW4tbGlnaHQ6ICNlY2YwZWI7XHJcbiRjb2xvci1ncmVlbi1kYXJrOiAjMEQ3MTUwO1xyXG4kY29sb3ItbGlnaHRncmVlbjogIzU2YmY3MjtcclxuJGNvbG9yLXllbGxvdy1saWdodDogI2ZmZWI5NjtcclxuJGNvbG9yLW9yYW5nZTogI0U1QjE2QTtcclxuJGNvbG9yLWFzcGhhbHQ6ICM3MDc4ODI7XHJcbiRjb2xvci1icm93bjogIzczNTAzMjtcclxuJGNvbG9yLWJyb3duMTogIzZlNGQyZjtcclxuJGNvbG9yLWJyb3duLWRhcmtlc3Q6ICM1YTNiMjA7XHJcbiRjb2xvci1icm93bi1kYXJrZXN0MTogIzM2MjMxMztcclxuJGNvbG9yLWJyb3duLW1lZGl1bTogIzdlNjA0ODtcclxuJGNvbG9yLWJyb3duLWxpZ2h0OiAjRUNFNkRDO1xyXG4kY29sb3ItYmxhY2s6ICMxZDFkMWQ7XHJcbiRjb2xvci1ncmV5OiAjRTVFNUU1O1xyXG4kY29sb3ItbGlnaHRncmV5OiAjY2NjY2NjO1xyXG5cclxuXHJcbiRjb2xvci10ZXh0OiAjMkMxQzIxO1xyXG4kY29sb3ItaGVhZGluZzogIzJDMUMyMTtcclxuJGNvbG9yLXByaW1hcnk6ICRjb2xvci1vcmFuZ2U7XHJcbiRjb2xvci1zZWNvbmRhcnk6ICRjb2xvci10ZXh0O1xyXG4kY29sb3ItbGluazogJGNvbG9yLXByaW1hcnk7XHJcbiRjb2xvci1saW5rLWFjdGl2ZTogJGNvbG9yLXByaW1hcnk7XHJcbiRjb2xvci1saW5rLWFjdGl2ZTI6ICNmZTRmNTI7XHJcbiRjb2xvci1ib3JkZXI6ICM4MDgwODA7XHJcbiRjb2xvci1ib3JkZXItaW5wdXQ6ICMwMDA7XHJcbiRjb2xvci1iZy1oZWFkZXI6IHRyYW5zcGFyZW50O1xyXG4kY29sb3ItaGVhZGVyOiAjRkNGOUU4O1xyXG4kY29sb3ItYmctZm9vdGVyOiAjMkMxQzIxO1xyXG4kY29sb3ItZm9vdGVyOiAjRkNGOUU4O1xyXG4kY29sb3ItYm94LWJvcmRlcjogJGNvbG9yLWJvcmRlcjtcclxuJGNvbG9yLXNlY3Rpb24tYm9yZGVyOiAjMkMxQzIxO1xyXG4kY29sb3ItZW1iZWQ6I0Q4RDhEODtcclxuXHJcbiRzaGFkb3c6IDBweCAwcHggMjVweCAwcHggcmdiYSgzNywgMzgsIDM3LCAuMSk7XHJcbiRtb2RhbC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcclxuXHJcblxyXG5cclxuJGMtYnRuLW9yYW5nZTogI2VmYjE1ZDtcclxuJGMtYnRuLWxpZ2h0LXJlZDogI2UzN2I3NTtcclxuJGMtYnRuLXJlZDogI2QwMDk2ZjtcclxuJGMtYnRuLXllbGxvdzogI2U0Y2EwYTtcclxuJGMtYnRuLWdyZWVuOiAjNTZiZjcyO1xyXG4vLyRjLWJ0bi1ob3Zlci1yZWQ6ICNlNjJmMmI7XHJcbiRjLWJ0bi1ob3Zlci1yZWQ6ICNmZTRmNTI7XHJcbiRjLWJ0bi1ob3ZlcjogI2ZlNGY1MjsiLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuNy4zXG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyAtLS0gRGVwZW5kZW5jaWVzIC0tLVxuQGltcG9ydCAndmVuZG9yL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvY29udGFpbic7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9wdXJnZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZW1vdmUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVwbGFjZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy90by1saXN0JztcblxuLy8gLS0tIFNldHRpbmdzIC0tLVxuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyAtLS0gQ29tcG9uZW50cyAtLS1cbi8vIFV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcbi8vIEdsb2JhbCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuXG4vLyBHcmlkc1xuQGltcG9ydCAnZ3JpZC9ncmlkJztcbkBpbXBvcnQgJ3h5LWdyaWQveHktZ3JpZCc7XG4vLyBHZW5lcmljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG4vLyBCYXNpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG4vLyBDb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuXG4vLyBMYXlvdXQgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKFxuICAkZmxleDogdHJ1ZSxcbiAgJHByb3RvdHlwZTogZmFsc2UsXG4gICR4eS1ncmlkOiAkeHktZ3JpZFxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaWYgJHh5LWdyaWQge1xuICAgICR4eS1ncmlkOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvLyBHbG9iYWwgc3R5bGVzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4gIC8vIEdyaWRzXG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgLy8gQmFzaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wYWdpbmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cbiAgLy8gQ29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblxuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblxuICAvLyBIZWxwZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcbiAgQGlmICRmbGV4IHsgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7IH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG4gIEBpZiAkcHJvdG90eXBlIHsgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlczsgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbm9ybWFsaXplKCkge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLy8gRG9jdW1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuXG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIH1cblxuICAvLyBTZWN0aW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gIC8vIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvLyBHcm91cGluZyBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gICAgaGVpZ2h0OiAwOyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gIC8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8vIDFcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLy8gMlxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgY29kZSxcbiAga2JkLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gIC8vIGFsbCBicm93c2Vycy5cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8vIEVtYmVkZGVkIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLy8gRm9ybXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgbWFyZ2luOiAwOyAvLyAyXG4gIH1cblxuICAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgLy8gMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cblxuICBidXR0b24sXG4gIGlucHV0IHsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gIC8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cblxuICBidXR0b24sXG4gIHNlbGVjdCB7IC8vIDFcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAvLyAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gIC8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDFcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAzXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cblxuICBwcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gMlxuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cblxuICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICAgIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIEludGVyYWN0aXZlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvLyBNaXNjXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG5cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vL1xuLy8vIENoZWNrcyB3aGV0aGVyIGAkZnVuY3Rpb25zYCBleGlzdCBpbiBnbG9iYWwgc2NvcGUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnTGlzdH0gJGZ1bmN0aW9ucyAtIGxpc3Qgb2YgZnVuY3Rpb25zIHRvIGNoZWNrIGZvclxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH0gV2hldGhlciBvciBub3QgdGhlcmUgYXJlIG1pc3NpbmcgZGVwZW5kZW5jaWVzXG4vLy9cbiBcbkBmdW5jdGlvbiBzbC1taXNzaW5nLWRlcGVuZGVuY2llcygkZnVuY3Rpb25zLi4uKSB7XG4gICRtaXNzaW5nLWRlcGVuZGVuY2llczogKCk7XG4gIFxuICBAZWFjaCAkZnVuY3Rpb24gaW4gJGZ1bmN0aW9ucyB7XG4gICAgQGlmIG5vdCBmdW5jdGlvbi1leGlzdHMoJGZ1bmN0aW9uKSB7XG4gICAgICAkbWlzc2luZy1kZXBlbmRlbmNpZXM6IGFwcGVuZCgkbWlzc2luZy1kZXBlbmRlbmNpZXMsICRmdW5jdGlvbiwgY29tbWEpO1xuICAgIH1cbiAgfVxuICBcbiAgQGlmIGxlbmd0aCgkbWlzc2luZy1kZXBlbmRlbmNpZXMpID4gMCB7XG4gICAgQGVycm9yICdVbm1ldCBkZXBlbmRlbmNpZXMhIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGFyZSByZXF1aXJlZDogI3skbWlzc2luZy1kZXBlbmRlbmNpZXN9Lic7XG4gIH1cblxuICBAcmV0dXJuIGxlbmd0aCgkbWlzc2luZy1kZXBlbmRlbmNpZXMpID4gMDtcbn1cbiIsIi8vL1xuLy8vIFJldHVybnMgdHJ1dGhpbmVzcyBvZiBgJHZhbHVlYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSB2YWx1ZSB0byBjaGVja1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cbi8vL1xuIFxuQGZ1bmN0aW9uIHNsLWlzLXRydWUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaWYoJHZhbHVlID09IG51bGwsIGZhbHNlLCAkdmFsdWUgYW5kICR2YWx1ZSAhPSBudWxsIGFuZCAkdmFsdWUgIT0gJycgYW5kICR2YWx1ZSAhPSAoKSk7XG59XG4iLCIvLy9cbi8vLyBSZXR1cm5zIHdoZXRoZXIgYCRsaXN0YCBjb250YWlucyBgJHZhbHVlYC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1jb250YWluXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAtIGxpc3QgdG8gY2hlY2tcbi8vLyBAcGFyYW0geyp9ICAgICAgICR2YWx1ZSAtIHZhbHVlIHRvIGxvb2sgZm9yXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHNsLWNvbnRhaW4oYSBiIGMsIGEpXG4vLy8gLy8gdHJ1ZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1jb250YWluKGEgYiBjLCB6KVxuLy8vIC8vIGZhbHNlXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuLy8vXG5cbkBmdW5jdGlvbiBzbC1jb250YWluKCRsaXN0LCAkdmFsdWUpIHtcbiAgQHJldHVybiBub3Qgbm90IGluZGV4KCRsaXN0LCAkdmFsdWUpO1xufVxuXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtY29udGFpblxuLy8vIEBhbGlhcyBzbC1jb250YWluXG4vLy9cbiBcbkBmdW5jdGlvbiBzbC1pbmNsdWRlKCRsaXN0LCAkdmFsdWUpIHtcbiAgQHJldHVybiBzbC1jb250YWluKCRsaXN0LCAkdmFsdWUpO1xufVxuIiwiLy8vIFJlbW92ZXMgYWxsIGZhbHNlIGFuZCBudWxsIHZhbHVlcyBmcm9tIGAkbGlzdGAuXG4vLy9cbi8vLyBAaWdub3JlIERvY3VtZW50YXRpb246IGh0dHA6Ly9hdC1pbXBvcnQuZ2l0aHViLmlvL1Nhc3N5TGlzdHMvZG9jdW1lbnRhdGlvbi8jZnVuY3Rpb24tc2wtcHVyZ2Vcbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1pcy10cnVlXG4vLy8gQHJlcXVpcmVzIHNsLXRvLWxpc3Rcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBsaXN0IHRvIHB1cmdlXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHNsLXB1cmdlKG51bGwgYSBmYWxzZSBiKVxuLy8vIC8vIGEgYlxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cbi8vL1xuXG5AZnVuY3Rpb24gc2wtcHVyZ2UoJGxpc3QpIHtcbiAgJF86IHNsLW1pc3NpbmctZGVwZW5kZW5jaWVzKCdzbC1pcy10cnVlJywgJ3NsLXRvLWxpc3QnKTtcbiAgXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgc2wtaXMtdHJ1ZSgkaXRlbSkge1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRpdGVtLCBsaXN0LXNlcGFyYXRvcigkbGlzdCkpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gc2wtdG8tbGlzdCgkcmVzdWx0KTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLXB1cmdlXG4vLy8gQGFsaWFzIHNsLXB1cmdlXG4vLy9cbiBcbkBmdW5jdGlvbiBzbC1jbGVhbigkbGlzdCkge1xuICBAcmV0dXJuIHNsLXB1cmdlKCRsaXN0KTtcbn1cbiIsIi8vL1xuLy8vIFJlbW92ZXMgdmFsdWUocykgYCR2YWx1ZWAgZnJvbSBgJGxpc3RgLlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXJlbW92ZVxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLXJlcGxhY2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gICAgJGxpc3QgICAgICAtIGxpc3QgdG8gdXBkYXRlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgICAgIC0gdmFsdWUgdG8gcmVtb3ZlXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHNsLXJlbW92ZShhIGIgYywgYSlcbi8vLyAvLyBiIGNcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXJlbW92ZSgkbGlzdCwgJHZhbHVlKSB7XG4gICRfOiBzbC1taXNzaW5nLWRlcGVuZGVuY2llcygnc2wtcmVwbGFjZScpO1xuXG4gIEByZXR1cm4gc2wtcmVwbGFjZSgkbGlzdCwgJHZhbHVlLCBudWxsKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLXJlbW92ZVxuLy8vIEBhbGlhcyBzbC1yZW1vdmVcbi8vL1xuXG5AZnVuY3Rpb24gc2wtd2l0aG91dCgkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gc2wtcmVtb3ZlKCRsaXN0LCAkdmFsdWUpO1xufVxuIiwiLy8vXG4vLy8gUmVwbGFjZXMgYCRvbGRgIGJ5IGAkbmV3YCBpbiBgJGxpc3RgLlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXJlcGxhY2Vcbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1pcy10cnVlXG4vLy8gQHJlcXVpcmVzIHNsLXB1cmdlXG4vLy8gQHJlcXVpcmVzIHNsLXRvLWxpc3Rcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gICAgJGxpc3QgIC0gbGlzdCB0byB1cGRhdGVcbi8vLyBAcGFyYW0geyp9ICAgICAgICRvbGQgICAtIHZhbHVlIHRvIHJlcGxhY2Vcbi8vLyBAcGFyYW0geyp9ICAgICAgICR2YWx1ZSAtIG5ldyB2YWx1ZSBmb3IgJG9sZFxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZXBsYWNlKGEgYiBjLCBiLCB6KVxuLy8vIC8vIGEgeiBjXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHNsLXJlcGxhY2UoYSBiIGMsIHksIHopXG4vLy8gLy8gYSBiIGNcbi8vLyBcbi8vLyBAcmV0dXJuIHtMaXN0fVxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtcmVwbGFjZSgkbGlzdCwgJG9sZCwgJHZhbHVlKSB7XG4gICRfOiBzbC1taXNzaW5nLWRlcGVuZGVuY2llcygnc2wtaXMtdHJ1ZScsICdzbC1wdXJnZScsICdzbC10by1saXN0Jyk7XG5cbiAgJHJ1bm5pbmc6IHRydWU7XG5cbiAgQHdoaWxlICRydW5uaW5nIHtcbiAgICAkaW5kZXg6IGluZGV4KCRsaXN0LCAkb2xkKTtcblxuICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICRydW5uaW5nOiBmYWxzZTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkbGlzdDogc2V0LW50aCgkbGlzdCwgJGluZGV4LCAkdmFsdWUpO1xuICAgIH1cblxuICB9XG5cbiAgJGxpc3Q6IGlmKHNsLWlzLXRydWUoJHZhbHVlKSwgJGxpc3QsIHNsLXB1cmdlKCRsaXN0KSk7XG4gIFxuICBAcmV0dXJuIHNsLXRvLWxpc3QoJGxpc3QpO1xufVxuIiwiLy8vXG4vLy8gQ2FzdHMgYCR2YWx1ZWAgaW50byBhIGxpc3QuXG4vLy9cbi8vLyBAaWdub3JlIERvY3VtZW50YXRpb246IGh0dHA6Ly9hdC1pbXBvcnQuZ2l0aHViLmlvL1Nhc3N5TGlzdHMvZG9jdW1lbnRhdGlvbi8jZnVuY3Rpb24tc2wtdG8tbGlzdFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSB2YWx1ZSB0byBjYXN0IHRvIGxpc3Rcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlcGFyYXRvciBbc3BhY2VdIC0gc2VwYXJhdG9yIHRvIHVzZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC10by1saXN0KGEgYiBjLCBjb21tYSlcbi8vLyAvLyBhLCBiLCBjXG4vLy8gXG4vLy8gQHJldHVybiB7TGlzdH1cbi8vL1xuXG5AZnVuY3Rpb24gc2wtdG8tbGlzdCgkdmFsdWUsICRzZXBhcmF0b3I6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZSkpIHtcbiAgQHJldHVybiBqb2luKCgpLCAkdmFsdWUsICRzZXBhcmF0b3IpO1xufVxuXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtdG8tbGlzdFxuLy8vIEBhbGlhcyBzbC10by1saXN0XG4vLy9cblxuQGZ1bmN0aW9uIHNsLWxpc3RpZnkoJHZhbHVlKSB7XG4gIEByZXR1cm4gc2wtdG8tbGlzdCgkdmFsdWUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcbkBpbXBvcnQgJ3VuaXQnO1xuQGltcG9ydCAndmFsdWUnO1xuQGltcG9ydCAnZGlyZWN0aW9uJztcbkBpbXBvcnQgJ2NvbG9yJztcbkBpbXBvcnQgJ3NlbGVjdG9yJztcbkBpbXBvcnQgJ2ZsZXgnO1xuQGltcG9ydCAnYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLWNvbG9yLWxpdGVyYWxzLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMTc3OWJhLFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgc2FmZSBwYWRkaW5nIG9uIHRoZSBib2R5IGZvciBub24tcmVjdGFuZ3VsYXIgZGV2aWNlcyAoaS5lLiBwaG9uZXMgd2l0aCBub3RjaGVzKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LXNhZmUtcGFkZGluZzogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlIHRoYXQgY29udGFpbnMgdGhlIGZsZXgganVzdGlmeWluZyBvcHRpb25zXG4kLXpmLWZsZXgtanVzdGlmeTogLXpmLWZsZXgtanVzdGlmeSgkZ2xvYmFsLXRleHQtZGlyZWN0aW9uKTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGlmICgkYm9keS1zYWZlLXBhZGRpbmcpIHtcbiAgICAgIC8vIHVzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBhY2NvdW50IGZvciBub24tcmVjdGFuZ3VsYXIgZGlzcGxheXMgZS5nLiBwaG9uZXMgd2l0aCBub3RjaGVzXG4gICAgICBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xuICAgICAgcGFkZGluZy1yaWdodDogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuICAgICAgcGFkZGluZy1sZWZ0OiBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEdsb2JhbCBzcGFjaW5nIGZvciBmb3JtIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG5AaW1wb3J0ICd0ZXh0JztcbkBpbXBvcnQgJ2NoZWNrYm94JztcbkBpbXBvcnQgJ2xhYmVsJztcbkBpbXBvcnQgJ2hlbHAtdGV4dCc7XG5AaW1wb3J0ICdpbnB1dC1ncm91cCc7XG5AaW1wb3J0ICdmaWVsZHNldCc7XG5AaW1wb3J0ICdzZWxlY3QnO1xuQGltcG9ydCAncmFuZ2UnO1xuQGltcG9ydCAncHJvZ3Jlc3MnO1xuQGltcG9ydCAnbWV0ZXInO1xuQGltcG9ydCAnZXJyb3InO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS10ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tZXJyb3I7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nICogMC41ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gIDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgKiAwLjUgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiAkaW5wdXQtbGluZS1oZWlnaHQpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgJiwgJi5pbnB1dC1ncm91cC1idXR0b24gPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG5cbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICY6bm90KFttdWx0aXBsZV0pIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgaGVpZ2h0IG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhlaWdodDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzbGlkZXIncyB0cmFjay5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGFjdGl2ZSBmaWxsIGNvbG9yIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGhlaWdodCBvZiB0aGUgaGFuZGxlIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGhhbmRsZSBmb3IgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgYW1vdW50IG9mIGEgZGlzYWJsZWQgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tcmFuZ2UtaW5wdXQge1xuICBpbnB1dFt0eXBlPSdyYW5nZSddIHsgIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICRtYXJnaW46ICgkc2xpZGVyLWhhbmRsZS1oZWlnaHQgLSAkc2xpZGVyLWhlaWdodCkgKiAwLjU7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbjtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAvLyBDaHJvbWUvU2FmYXJpXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xuXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpcmVmb3hcbiAgICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xuXG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEludGVybmV0IEV4cGxvcmVyXG4gICAgJjo6LW1zLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci10b3A6ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcbiAgICAgIGJvcmRlci1ib3R0b206ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcblxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjo6LW1zLXRodW1iIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWZpbGwtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgb3V0cHV0IHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb2dyZXNzLWJhclxuLy8vL1xuXG4vLy8gSGVpZ2h0IG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLWhlaWdodDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBhIHByb2dyZXNzIGJhcidzIG1ldGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1lbGVtZW50IHtcbiAgcHJvZ3Jlc3Mge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgfVxuXG4gICAgLy8gRm9yIEZpcmVmb3hcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogJHByb2dyZXNzLWJhY2tncm91bmQ7XG5cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgc2V0cyB0aGUgZmlsbCB3aXRoIGNvbG9yXG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvciBJRSBhbmQgRWRnZVxuICAgICY6Oi1tcy1maWxsIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICAgIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWV0ZXJcbi8vLy9cblxuLy8vIEhlaWdodCBvZiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIExlbmd0aFxuJG1ldGVyLWhlaWdodDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWV0ZXIgZmlsbCBmb3IgYW4gb3B0aW1hbCB2YWx1ZSBpbiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvciAhZGVmYXVsdDtcblxuLy8vIE1ldGVyIGZpbGwgZm9yIGFuIGF2ZXJhZ2UgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvciAhZGVmYXVsdDtcblxuLy8vIE1ldGVyIGZpbGwgZm9yIGEgc3Vib3B0aW1hbCB2YWx1ZSBpbiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kbWV0ZXItZmlsbC1iYWQ6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tbWV0ZXItZWxlbWVudCB7XG4gIG1ldGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRtZXRlci1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIC8vIERpc2FibGUgYC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZWAgZnJvbSBnZXR0aW5nIHByZWZpeGVkLFxuICAgIC8vIFdlIGhhdmUgZGlzYWJsZWQgYXV0b3ByZWZpeGVyIGZpcnN0IGFuZCBhcmUganVzdCBvbmx5IHVzaW5nIFxuICAgIC8vIGAtbW96LWFwcGVhcmFuY2U6IG5vbmVgIGFzIGEgcHJlZml4IGFuZCBuZWdsZWN0aW5nIHRoZSB3ZWJraXQuXG4gICAgXG4gICAgLyohIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgLy8gRm9yIEZpcmVmb3hcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAvLyBDaHJvbWUvU2FmYXJpL0VkZ2VcbiAgICAmOjotd2Via2l0LW1ldGVyLWJhciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IHtcbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItb3B0aW11bS12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1nb29kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLXN1Ym9wdGltdW0tdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtbWVkaXVtO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWJhZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1vei1tZXRlci1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6LW1vei1tZXRlci1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1nb29kO1xuICAgIH1cblxuICAgICY6LW1vei1tZXRlci1zdWItb3B0aW11bTo6LW1vei1tZXRlci1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtbWVkaXVtO1xuICAgIH1cblxuICAgICY6LW1vei1tZXRlci1zdWItc3ViLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWJhZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtZXJyb3ItY29sb3I6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtbGlnaHRlbiBbMTAlXSAtIExpZ2h0bmVzcyBsZXZlbCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxuICAkYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtaW52YWxpZCxcbiAgJGJhY2tncm91bmQtbGlnaHRlbjogMTAlXG4pIHtcbiAgJjpub3QoOmZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGJhY2tncm91bmQsICR3aGl0ZSwgJGJhY2tncm91bmQtbGlnaHRlbik7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLy9cblxuLy8gQmFzZSB0eXBvZ3JhcGh5IHN0eWxlcyAodGFncyBvbmx5KVxuQGltcG9ydCAnYmFzZSc7XG5cbi8vIFR5cG9ncmFwaHkgaGVscGVyIGNsYXNzZXMgKGNsYXNzZXMgb25seSlcbkBpbXBvcnQgJ2hlbHBlcnMnO1xuXG4vLyBUZXh0IGFsaWdubWVudCBjbGFzc2VzXG5AaW1wb3J0ICdhbGlnbm1lbnQnO1xuXG4vLyBQcmludCBzdHlsZXNcbkBpbXBvcnQgJ3ByaW50JztcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeSB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcmludC1zdHlsZXM7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjb2RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5saW5lIENpdGF0aW9uc1xuICBAaWYgKCRlbmFibGUtY2l0ZS1ibG9jayA9PSB0cnVlKSB7XG4gICAgY2l0ZSB7XG4gICAgICAvLyBFeHRlbmRpbmcgYSBjbGFzcyBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgICAvLyBUT0RPOiBCcmVhayB0aGUgdHlwb2dyYXBoeS1iYXNlL3R5cG9ncmFwaHktaGVscGVycyBzZXBhcmF0aW9uXG4gICAgICBAZXh0ZW5kIC5jaXRlLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvZGVcbiAgQGlmICgkZW5hYmxlLWNvZGUtaW5saW5lID09IHRydWUpIHtcbiAgICBjb2RlIHtcbiAgICAgIEBleHRlbmQgLmNvZGUtaW5saW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLWJsb2NrLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gdW5kZXIgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gY2l0ZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogJGNpdGUtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgfVxufVxuXG4vLy8gQWRkIGJhc2ljIHN0eWxlcyBmb3IgYSBjb2RlIGhlbHBlci5cbi8vLyBTZWUgYGNvZGUtaW5saW5lYCBhbmQgYGNvZGUtYmxvY2tgIG1peGlucy5cbkBtaXhpbiBjb2RlLXN0eWxlIHtcbiAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkY29kZS1jb2xvcjtcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGlubGluZS5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1pbmxpbmVgXG5AbWl4aW4gY29kZS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBhIGJsb2NrLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWJsb2NrYFxuQG1peGluIGNvZGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG5cbiAgcGFkZGluZzogJGNvZGUtYmxvY2stcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmNpdGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNpdGUtYmxvY2s7XG4gIH1cblxuICAuY29kZS1pbmxpbmUge1xuICAgIEBpbmNsdWRlIGNvZGUtc3R5bGU7XG4gICAgQGluY2x1ZGUgY29kZS1pbmxpbmU7XG4gIH1cblxuICAuY29kZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWJsb2NrO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5cyBuZXh0IHRvIGFsbCBsaW5rcyB0aGVpciBcImhyZWZcIiB3aGVuIHByaW50ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICAvLyBFbnN1cmUgYSBcImJsYWNrLW9uLXdoaXRlXCIgcHJpbnQgYnkgcmVtb3ZpbmcgYmFja2dyb3VuZHMsXG4gICAgICAvLyB1c2luZyBibGFjayB0ZXh0IGV2ZXJ5d2hlcmUgYW5kIGZvcmNpbmcgdGhlIGJyb3dzZXIgdG8gZWNvbm9taXplIGluay5cbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgICBjb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIHByZXZlbnQgYW55IGVjb25vbXkgYnkgdGhlIGJyb3dzZXIuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIGNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBUaGUgbWF4aW11bSB3aWR0aCBvZiBhIHJvdy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudCBvZiBhIGdyaWQuIENoYW5naW5nIHRoaXMgdmFsdWUgYWZmZWN0cyB0aGUgbG9naWMgb2YgdGhlIGdyaWQgbWl4aW5zLCBhbmQgdGhlIG51bWJlciBvZiBDU1MgY2xhc3NlcyBvdXRwdXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIGNvbHVtbnMgYXQgZGlmZmVyZW50IHNjcmVlbiBzaXplcy4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbi8vLyBAc2luY2UgNi4xLjBcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyB3aWxsIGFsaWduIHRvIHRoZSBvcHBvc2l0ZSBlZGdlIG9mIHRoZSByb3cuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciB1c2VkIGZvciBhbiBhbGlhcyBvZiBjb2x1bW4gKHdpdGggQGV4dGVuZCkuIElmIGBmYWxzZWAsIG5vIGFsaWFzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZ3JpZC1jb2x1bW4tYWxpYXM6ICdjb2x1bW5zJyAhZGVmYXVsdDtcblxuLy8vIFRoZSBoaWdoZXN0IG51bWJlciBvZiBgLngtdXBgIGNsYXNzZXMgYXZhaWxhYmxlIHdoZW4gdXNpbmcgdGhlIGJsb2NrIGdyaWQgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJGJsb2NrLWdyaWQtbWF4OiA4ICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YWx1ZSB0byBzdG9yZSB0aGUgZW5kIGNvbHVtbiBmbG9hdCBkaXJlY3Rpb25cbiQtemYtZW5kLWZsb2F0OiBpZigkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSwgJGdsb2JhbC1yaWdodCwgJGdsb2JhbC1sZWZ0KTtcblxuQGltcG9ydCAncm93JztcbkBpbXBvcnQgJ2NvbHVtbic7XG5AaW1wb3J0ICdzaXplJztcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcbkBpbXBvcnQgJ2d1dHRlcic7XG5AaW1wb3J0ICdjbGFzc2VzJztcbkBpbXBvcnQgJ2xheW91dCc7XG5cbkBpbXBvcnQgJ2ZsZXgtZ3JpZCc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpICogMC41ICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGJhc2VkIG9uIGEgbnVtYmVyIG9mIGZhY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xuLy8vICAgV2lkdGggb2YgdGhlIGNvbHVtbi4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgcGVyY2VudGFnZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGNvbHVtbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXG4vLy8gICAtIEEgbGlzdCBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgKHdpdGhvdXQgcXVvdGVzKSB3aWxsIG1ha2UgYSBjb2x1bW4gdGhhdCBpcyAqeCogY29sdW1ucyB3aWRlLCBhc3N1bWluZyAqeSogdG90YWwgY29sdW1ucyBmb3IgdGhlIHBhcmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XG4gIEByZXR1cm4gZnJhY3Rpb24tdG8tcGVyY2VudGFnZSgkY29sdW1ucywgJGRlbm9taW5hdG9yOiAkZ3JpZC1jb2x1bW4tY291bnQpO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBQb3NpdGlvblxuICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoYXV0byk7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gcm93LiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBgLnJvd2AgYW5kIGAuY29sdW1uYCB0byB0aGUgc2FtZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcm93KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcbkBtaXhpbiBncmlkLWNvbC1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXJzKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIEl0IGNhbiBiZTpcbi8vLyAgICogQSBudW1iZXI6IFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50XG4vLy8gICAgIHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZVxuLy8vICAgICBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuXG4vLy8gICAqIGBjZW50ZXJgOiBDb2x1bW4gd2lsbCBiZSBjZW50ZXJlZFxuLy8vICAgKiBgYXV0b2A6IENvbHVtbiB3aWxsIGJlIHB1c2hlZCB0byB0aGUgbGVmdCAob3IgdG8gdGhlIHJpZ2h0IGZvciB0aGUgbGFzdCBjb2x1bW4pLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICAvLyBBdXRvIHBvc2l0aW9uaW5nXG4gIEBpZiAkcG9zaXRpb24gPT0gYXV0byB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHVzaC9wdWxsXG4gIEBlbHNlIGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZShkaXZpZGUoJHBvc2l0aW9uLCAkZ3JpZC1jb2x1bW4tY291bnQpKTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cblxuICAvLyBDZW50ZXIgcG9zaXRpb25pbmdcbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgXCJjZW50ZXJcIiBvciBcImF1dG9cIi4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGF1dG8pO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgYnkgYCRuYCBjb2x1bW5zLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdyaWQtY29sdW1uKCRuKTtcbn1cblxuLy8vIERpc2FibGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IGFsaWduaW5nIHRvIHRoZSBvcHBvc2l0ZSBlZGdlLlxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XG4gIC8vIFRoaXMgZXh0cmEgc3BlY2lmaWNpdHkgaXMgcmVxdWlyZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBiZSBhcHBsaWVkXG4gICY6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bnBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bnBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bnBvc2l0aW9uO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tb2Zmc2V0KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1vZmZzZXRcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWVuZCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZW5kXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtblxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRndXR0ZXIgW2F1dG9dXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJGd1dHRlcnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgKiAwLjU7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWd1dHRlclxuQG1peGluIGdyaWQtY29sLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlciwgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNldHMgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMgdG8gbWF0Y2ggZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRtYXJnaW4gW2F1dG9dXG4vLy8gICBUaGUgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRtYXJnaW5zIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBtYXJnaW4gcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRtYXJnaW5zIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFyZ2lucyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1tYXJnaW4gKFxuICAkbWFyZ2luOiBhdXRvLFxuICAkbWFyZ2luczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRtYXJnaW4sICRtYXJnaW5zKSB7XG4gICAgJG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIEBpZiAkcHVzaCB7XG4gICAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoJGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkcHVsbCB7XG4gICAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgQGlmICRvZmZzZXQge1xuICAgICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLW9mZigkbyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtbGF5b3V0KCRpLCAnLiN7JGNvbHVtbn0nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRleHBhbmRlZH0uI3skcm93fSAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfS4jeyRyb3d9IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkLXpmLXNpemUpOyB9XG4gICAgfVxuXG4gICAgLy8gUG9zaXRpb25pbmdcbiAgICBAaWYgJGNlbnRlciB7XG4gICAgICAuI3skLXpmLXNpemV9LSN7JGNlbnRlcn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgICQtZ3V0dGVyLXVucG9zLXNlbGVjdG9yOiAoXG4gICAgICBpZigkdW5jZW50ZXIsICcuI3skLXpmLXNpemV9LSN7JHVuY2VudGVyfScsIG51bGwpLFxuICAgICAgaWYoJHB1c2gsICcuI3skLXpmLXNpemV9LSN7JHB1c2h9LTAnLCBudWxsKSxcbiAgICAgIGlmKCRwdWxsLCAnLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0wJywgbnVsbCksXG4gICAgKTtcbiAgICBAaWYgKCR1bmNlbnRlciBvciAkcHVzaCBvciAkcHVsbCkge1xuICAgICAgI3skLWd1dHRlci11bnBvcy1zZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC11bnBvcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLiN7JGNvbHVtbn0tI3skYmxvY2t9IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICBAaWYgJGNvbHVtbiA9PSAnY29sdW1uJyBhbmQgaGFzLXZhbHVlKCRncmlkLWNvbHVtbi1hbGlhcykge1xuICAgIC4jeyRncmlkLWNvbHVtbi1hbGlhc30ge1xuICAgICAgLy8gc2Fzcy1saW50OmRpc2FibGUtYmxvY2sgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG4gICAgICBAZXh0ZW5kIC5jb2x1bW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRndXR0ZXJcbi8vLyAgIFRoZSBndXR0ZXIgdG8gYXBwbHkgdG8gY2hpbGQgZWxlbWVudHMuIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHdpbGwgdXNlIHRoZSB2YWx1ZXMgaW4gdGhlICRncmlkLWNvbHVtbi1ndXR0ZXIgbWFwLCBpbmNsdWRpbmcgYnJlYWtwb2ludCBzaXplcy5cbi8vLyAgIC0gQSBmaXhlZCBudW1lcmljIHZhbHVlIHdpbGwgYXBwbHkgdGhpcyBndXR0ZXIgdG8gYWxsIGJyZWFrcG9pbnRzLlxuQG1peGluIGdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbicsXG4gICRndXR0ZXI6IG51bGxcbikge1xuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKGRpdmlkZSgxLCAkbikpO1xuXG4gICAgLy8gSWYgYSAkZ3V0dGVyIHZhbHVlIGlzIHBhc3NlZFxuICAgIEBpZigkZ3V0dGVyKSB7XG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgKiAwLjU7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAqIDAuNTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgjeyRufW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGV4dHJhIENTUyB0byBibG9jayBncmlkIGNoaWxkcmVuIHNvIHRoZSBsYXN0IGl0ZW1zIGluIHRoZSByb3cgY2VudGVyIGF1dG9tYXRpY2FsbHkuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbHVtbnMsIG5vdCB0aGUgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGl0ZW1zIHRoYXQgYXBwZWFyIGluIGVhY2ggcm93LlxuQG1peGluIGdyaWQtbGF5b3V0LWNlbnRlci1sYXN0KCRuKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRvICRuIHtcbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gZGl2aWRlKDEwMCwgJG4pICogJGkpICogMC41ICogMSU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIGRpdmlkZSgxMDAsICRuKSAqICRpKSAqIDAuNSAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBoYXZlIHJvdyB3cmFwcGluZyBiZWhhdmlvciBzZXQgdG8gbm93cmFwXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRuKSk7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcbiAgICAvLyBGcm9tIGNvbGxhcHNlZCBjaGlsZFxuICAgICYuaXMtY29sbGFwc2UtY2hpbGQsXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC5jb2x1bW4ucm93LnJvdyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIEVuYWJsZXMgdGhlIFhZIGdyaWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHh5LWdyaWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbWF4aW11bSB3aWR0aCBvZiBhIGdyaWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtY29udGFpbmVyOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gVGhlIG51bWJlciBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGdyaWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLy8vIFRoZSBhbW91bnQgb2YgbWFyZ2luIGJldHdlZW4gY2VsbHMgYXQgZGlmZmVyZW50IHNjcmVlbiBzaXplcyB3aGVuIHVzaW5nIHRoZSBtYXJnaW4gZ3JpZC4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbiRncmlkLW1hcmdpbi1ndXR0ZXJzOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgYW1vdW50IG9mIHBhZGRpbmcgaW4gY2VsbHMgYXQgZGlmZmVyZW50IHNjcmVlbiBzaXplcyB3aGVuIHVzaW5nIHRoZSBwYWRkaW5nIGdyaWQuIFRvIHVzZSBqdXN0IG9uZSBzaXplLCBzZXQgdGhlIHZhcmlhYmxlIHRvIGEgbnVtYmVyIGluc3RlYWQgb2YgYSBtYXAuXG4vLy8gQHR5cGUgTWFwIHwgTGVuZ3RoXG4kZ3JpZC1wYWRkaW5nLWd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBwYWRkaW5nIHRvIHVzZSB3aGVuIHBhZGRpbmcgdGhlIGdyaWQtY29udGFpbmVyLlxuLy8vIEB0eXBlIE1hcCB8IExlbmd0aFxuJGdyaWQtY29udGFpbmVyLXBhZGRpbmc6ICRncmlkLXBhZGRpbmctZ3V0dGVycyAhZGVmYXVsdDtcblxuLy8vIFRoZSBtYXhpbXVtIHdpZHRoIHRvIGFwcGx5IHRvIGEgZ3JpZCBjb250YWluZXJcbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLWNvbnRhaW5lci1tYXg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2VsbHMgaW4gYW4gWFkgYmxvY2sgZ3JpZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR4eS1ibG9jay1ncmlkLW1heDogOCAhZGVmYXVsdDtcblxuQGltcG9ydCAnZ3V0dGVycyc7XG5AaW1wb3J0ICdncmlkJztcbkBpbXBvcnQgJ2NlbGwnO1xuQGltcG9ydCAnZnJhbWUnO1xuQGltcG9ydCAncG9zaXRpb24nO1xuQGltcG9ydCAnbGF5b3V0JztcbkBpbXBvcnQgJ2NvbGxhcHNlJztcbkBpbXBvcnQgJ2NsYXNzZXMnO1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZSBndXR0ZXJzIGZvciBhIGNlbGwvY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBlaXRoZXIgbWFyZ2luIG9yIHBhZGRpbmcuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZWdhdGl2ZSBbZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgZ3V0dGVyIGFzIGEgbmVnYXRpdmUgdmFsdWUuIENvbW1vbmx5IHVzZWQgZm9yIG5lc3RlZCBncmlkcy5cbkBtaXhpbiB4eS1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbmVnYXRpdmU6IGZhbHNlXG4pIHtcbiAgJG9wZXJhdG9yOiBpZigkbmVnYXRpdmUsICctJywgJycpO1xuXG4gIC8vIElmIHdlIGhhdmUgZGVjbGFyZWQgbmVnYXRpdmUgZ3V0dGVycywgZm9yY2UgdHlwZSB0byBgbWFyZ2luLlxuICAkZ3V0dGVyLXR5cGU6IGlmKCRuZWdhdGl2ZSwgJ21hcmdpbicsICRndXR0ZXItdHlwZSk7XG5cbiAgLy8gT3V0cHV0IG91ciBtYXJnaW4gZ3V0dGVycy5cbiAgQGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJykge1xuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRndXR0ZXJzKSB7XG4gICAgICAkZ3V0dGVyOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAqIDAuNTtcblxuICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgKiAwLjU7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiB1bnF1b3RlKFwiI3skb3BlcmF0b3J9I3skZ3V0dGVyfVwiKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgbWF4IHdpZHRoIGNvbnRhaW5lciwgZGVzaWduZWQgdG8gaG91c2UgeW91ciBncmlkIGNvbnRlbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1jb250YWluZXJdIC0gYSB3aWR0aCB0byBsaW1pdCB0aGUgY29udGFpbmVyIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJGdyaWQtY29udGFpbmVyLXBhZGRpbmddIC0gcGFkZGluZ3Mgb2YgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgeW91ciBmbGV4IGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtob3Jpem9udGFsXSAtIEVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGRpcmVjdGlvbiBvZiBjZWxscyB3aXRoaW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBJZiB0aGUgY2VsbHMgd2l0aGluIHNob3VsZCB3cmFwIG9yIG5vdC5cbkBtaXhpbiB4eS1ncmlkKFxuICAkZGlyZWN0aW9uOiBob3Jpem9udGFsLFxuICAkd3JhcDogdHJ1ZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnLCByb3csIGNvbHVtbik7XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIGZsZXggdmFsdWUgZm9yIGEgY2VsbCBiYXNlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgLCBgZ3Jvd2AsIG9yIGFueSBvdGhlciB2YWx1ZSByZXByZXNlbnRpbmcgYSBjZWxsIHNpemUgKGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBgc2hyaW5rYCkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gVGhlIGNlbGwgZmxleCBwcm9wZXJ0eSB2YWx1ZS5cbkBmdW5jdGlvbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBAcmV0dXJuIDEgMSAwcHg7XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdncm93Jykge1xuICAgIEByZXR1cm4gMSAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdzaHJpbmsnIG9yICRzaXplID09ICdmdWxsJyBvciB6Zi1pcy1mcmFjdGlvbigkc2l6ZSwgJGFsbG93LW5vLWRlbm9taW5hdG9yOiB0cnVlKSkge1xuICAgIEByZXR1cm4gMCAwIGF1dG87XG4gIH1cbiAgQHJldHVybiBudWxsO1xufVxuXG4vLy8gQ2FsY3VsYXRlIHRoZSBzaXplIG9mIGEgY2VsbCBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIHJldHVybnMgdGhlIHJlc3BvbnNpdmUgZ3V0dGVycyBtYXAgYCRndXR0ZXJzYC4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxNYXB9IFRoZSBjZWxsIGd1dHRlciBzaXplIG9yIHRoZSByZXNwb25zaXZlIGd1dHRlcnMgbWFwLlxuQGZ1bmN0aW9uIHh5LWNlbGwtZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gIC8vIEZvciBgYXV0b2AsIHJldHVybnMgdGhlIHJlc3BvbnNpdmUgbWFwIGAkZ3V0dGVyc2AuXG4gIEBpZiAoJGJyZWFrcG9pbnQgPT0gJ2F1dG8nKSB7XG4gICAgQHJldHVybiAkZ3V0dGVycztcbiAgfVxuXG4gIC8vIFVzZSB0aGUgY29udGV4dHVhbCBicmVha3BvaW50IGJ5IGRlZmF1bHQuXG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50KTtcblxuICBAaWYgKCRicmVha3BvaW50KSB7XG4gICAgQHJldHVybiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXplcm8tYnJlYWtwb2ludCkgb3IgMDtcbiAgfVxufVxuXG4vLy8gUmV0dXJucyB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8zYC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFNpemUgb2YgdGhlIGNlbGwgKGluIHBlcmNlbnQpLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICBAcmV0dXJuIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoJHNpemUsICRkZW5vbWluYXRvcjogJGdyaWQtY29sdW1ucyk7XG59XG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgdmFsdWUgZm9yIGEgY2VsbCBzaXplLlxuLy8vXG4vLy8gR3V0dGVycy1yZWxhdGVkIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQgZm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMgKGJ5IGRlZmF1bHQpIGFzIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgIG9yIGFueSBmcmFjdGlvbiBsaWtlIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCByZXR1cm5zIGEgbWFwIG9mIHNpemVzIGFkYXB0ZWQgdG8gcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ3xNYXB9IFRoZSBjZWxsIHNpemluZyBwcm9wZXJ0eSB2YWx1ZSwgb3IgYSByZXNwb25zaXZlIG1hcCBvZiB0aGVtLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZS1jc3MoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gICRtYXJnaW4tZ3V0dGVyOiAwO1xuXG4gIEBpZiAoJHNpemUgPT0gJ2F1dG8nIG9yICRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgQHJldHVybiBhdXRvO1xuICB9XG5cbiAgLy8gRm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMsIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgICRtYXJnaW4tZ3V0dGVyOiB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgICBAaWYgKCRtYXJnaW4tZ3V0dGVyID09IG51bGwpIHtcbiAgICAgIEBlcnJvciAneHktY2VsbC1zaXplOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBjZWxsIHNpemUgKG51bWJlcilcbiAgJHNpemUtcmF3OiBpZigkc2l6ZSA9PSAnZnVsbCcsIDEwMCUsIHh5LWNlbGwtc2l6ZSgkc2l6ZSkpO1xuXG4gIC8vIENhbGN1bGF0ZSB0aGUgY2VsbCBDU1Mgc2l6ZSBpbmNsdWRpbmcgZ3V0dGVycyAoc3RyaW5nKVxuICAvLyBJZiB0aGUgY2VsbCBoYXMgcmVzcG9uc2l2ZSBtYXJnaW4gZ3V0dGVycywgcmV0dXJuIGEgcmVzcG9uc2l2ZSBtYXAgb2Ygc2l6ZXMuXG4gIEBpZiB0eXBlLW9mKCRtYXJnaW4tZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgJHJlc3BvbnNpdmUtY3NzLXNpemVzOiAoKTtcblxuICAgIEBlYWNoICRicCwgJG1nIGluICRtYXJnaW4tZ3V0dGVyIHtcbiAgICAgICRzaXplLWNzczogaWYoJG1nID09IDAsICRzaXplLXJhdywgY2FsYygjeyRzaXplLXJhd30gLSAje3JlbS1jYWxjKCRtZyl9KSk7XG4gICAgICAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM6IG1hcC1tZXJnZSgkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXMsICgkYnA6ICRzaXplLWNzcykpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3BvbnNpdmUtY3NzLXNpemVzO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIGEgc2luZ2xlIENTUyBzaXplLlxuICBAZWxzZSB7XG4gICAgJGNzcy1zaXplOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAkc2l6ZS1yYXcsIGNhbGMoI3skc2l6ZS1yYXd9IC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgQHJldHVybiAkY3NzLXNpemU7XG4gIH1cbn1cblxuLy8vIFNldHMgYmFzZSBmbGV4IHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgLCBgZ3Jvd2AsIG9yIGFueSBvdGhlciB2YWx1ZSByZXByZXNlbnRpbmcgYSBjZWxsIHNpemUgKGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBgc2hyaW5rYCkuXG5AbWl4aW4geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gICRiYXNlOiB4eS1jZWxsLWJhc2UoJHNpemUpO1xuXG4gIGZsZXg6ICN7JGJhc2V9O1xuXG4gIC8vIFNldCBiYXNlIHN0eWxlcyBmb3IgXCJmdWxsXCIgb25seVxuICBAaWYoJHNpemUgPT0gJ2Z1bGwnKSB7XG4gICAgbWluLWhlaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xuICB9XG59XG5cbi8vLyBSZXNldHMgYSBjZWxscyB3aWR0aCAob3IgaGVpZ2h0IGlmIHZlcnRpY2FsIGlzIHRydWUpIGFzIHdlbGwgYXMgc3RyaXBzIGl0cyBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtcmVzZXQoJHZlcnRpY2FsOiB0cnVlKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgbWF4LSN7JGRpcmVjdGlvbn06IG5vbmU7XG59XG5cbi8vLyBTZXRzIHNpemluZyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEd1dHRlcnMtcmVsYXRlZCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIGZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzIChieSBkZWZhdWx0KSBhcyB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHNpemVzIGFkYXB0ZWQgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplczogeHktY2VsbC1zaXplLWNzcygkc2l6ZSwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG5cbiAgQGlmICh0eXBlLW9mKCRzaXplcykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkc2l6ZXMpIHtcbiAgICAgICN7JGRpcmVjdGlvbn06ICQtemYtYnAtdmFsdWU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRkaXJlY3Rpb259OiAkc2l6ZXM7XG4gIH1cbn1cblxuLy8vIFNldHMgZ3V0dGVycyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIERpcmVjdGlvbiBvZiB0aGUgZ3V0dGVycyB0byBvdXRwdXQuIFNlZSBgJGd1dHRlci1wb3NpdGlvbmAuXG5AbWl4aW4geHktY2VsbC1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIC8vIEdldCB0aGUgZGVmYXVsdCBndXR0ZXIgcG9zaXRpb24gYWNjb3JkaW5nIHRvIGNlbGwgZGlyZWN0aW9uXG4gIEBpZigkZ3V0dGVyLXBvc2l0aW9uID09IG51bGwpIHtcbiAgICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG4gIH1cblxuICAvLyBHZXQgdGhlIGd1dHRlciB3aWR0aCBmb3IgdGhpcyBicmVha3BvaW50XG4gICRndXR0ZXItd2lkdGg6IHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICBAaWYgKCRndXR0ZXItd2lkdGggPT0gbnVsbCkge1xuICAgIEBlcnJvciAneHktY2VsbC1ndXR0ZXJzOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gIH1cblxuICBAaWYgKCRndXR0ZXItdHlwZSBhbmQgJGd1dHRlci10eXBlICE9IG5vbmUpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXItd2lkdGgsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbbnVsbF0gLSBbREVQUkVDQVRFRF0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkb3V0cHV0IFsoYmFzZSBzaXplIGd1dHRlcnMpXSAtIENlbGwgcGFydHMgdG8gb3V0cHV0LiBZb3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIG90aGVycyBwYXJ0cyBvZiB0aGUgY2VsbCBzZXBlcmF0ZWx5LCBpdCBtYXkgbm90IHdvcmsgcHJvcGVybHkgb3RoZXJ3aXNlLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogbnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRvdXRwdXQ6IChiYXNlIHNpemUgZ3V0dGVycylcbikge1xuICAvLyBEZWZhdWx0IGZvciAkZ3V0dGVyLW91dHB1dFxuICBAaWYgKCRndXR0ZXItb3V0cHV0ICE9IG51bGwpIHtcbiAgICBAd2FybiAneHktY2VsbDogJGd1dHRlci1vdXRwdXQgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTAnO1xuICAgIEBpZiAoJGd1dHRlci1vdXRwdXQgPT0gZmFsc2UpIHtcbiAgICAgICRvdXRwdXQ6IHNsLXJlbW92ZSgkb3V0cHV0LCBndXR0ZXJzKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGJhc2UpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIHNpemUpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRzaXplLCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGd1dHRlcnMpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgc2l6ZWQgZ3JpZC4gVXNlZCB0byBnZW5lcmF0ZSBvdXIgZ3JpZCBjbGFzc2VzLlxuLy8vXG4vLy8gYHh5LWNlbGwtc3RhdGljKClgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC5cbi8vLyBVc2UgYHh5LWNlbGwoKWAgaW5zdGVhZCB3aXRoIGAkb3V0cHV0OiAoc2l6ZSBndXR0ZXJzKWAgdG8gbm90IGdlbmVyYXRlIHRoZSBjZWxsIGJhc2UuXG4vLy8gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wXG4vLy9cbi8vLyBAZGVwcmVjYXRlZCB2Ni42LjBcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLiBBbHdheXMgYHRydWVgIGZvciBtYXJnaW4gZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc3RhdGljKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIEB3YXJuICd4eS1jZWxsLXN0YXRpYygpIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIFwieHktY2VsbCgpXCIgaW5zdGVhZC4gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wJztcblxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG5cbiAgJC1ndXR0ZXItb3V0cHV0OiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsIHRydWUsICRndXR0ZXItb3V0cHV0KTtcbiAgJC1ndXR0ZXItbWFyZ2luOiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsICRndXR0ZXIsIDApO1xuXG4gIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICQtZ3V0dGVyLW1hcmdpbiwgJHZlcnRpY2FsKTtcbiAgQGlmICgkLWd1dHRlci1vdXRwdXQpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXIsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cbiIsIi8vLyBNb2RpZmllcyBhIGdyaWQgdG8gZ2l2ZSBpdCBcImZyYW1lXCIgYmVoYXZpb3IgKG5vIG92ZXJmbG93LCBubyB3cmFwLCBzdHJldGNoIGJlaGF2aW9yKVxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIElzIGdyaWQgdmVydGljYWwgb3IgaG9yaXpvbnRhbC4gU2hvdWxkIG1hdGNoIGdyaWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVzdGVkIFtmYWxzZV0gLSBJcyBncmlkIG5lc3RlZCBvciBub3QuIElmIG5lc3RlZCBpcyB0cnVlIHRoaXMgc2V0cyB0aGUgZnJhbWUgdG8gMTAwJSBoZWlnaHQsIG90aGVyd2lzZSB3aWxsIGJlIDEwMHZoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgW251bGxdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGluY2x1ZGUtYmFzZSBbdHJ1ZV0gLSBJbmNsdWRlIHRoZSBiYXNlIHN0eWxlcyB0aGF0IGRvbid0IHZhcnkgcGVyIGJyZWFrcG9pbnQuXG5AbWl4aW4geHktZ3JpZC1mcmFtZShcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG5lc3RlZDogZmFsc2UsXG4gICRndXR0ZXJzOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJGluY2x1ZGUtYmFzZTogdHJ1ZVxuKSB7XG5cbiAgQGlmICRpbmNsdWRlLWJhc2Uge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgQGlmICRicmVha3BvaW50ID09IG51bGwgYW5kIHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSgkdmVydGljYWwsICRuZXN0ZWQsICRndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIC8vIEdldCBvdXIgZ3V0dGVycyBpZiBhcHBsaWNhYmxlXG4gICAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcblxuICAgIC8vIElmIHdlIGhhdmUgYSBndXR0ZXIsIGFkZCBpdCB0byB0aGUgd2lkdGgvaGVpZ2h0XG4gICAgQGlmICRndXR0ZXIge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgJHVuaXQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdmgpO1xuICAgICAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKCN7JHVuaXR9ICsgI3skZ3V0dGVyfSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHVuaXQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdncpO1xuICAgICAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgaGVpZ2h0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB3aWR0aDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBNb2RpZmllcyBhIGNlbGwgdG8gZ2l2ZSBpdCBcImJsb2NrXCIgYmVoYXZpb3IgKG92ZXJmbG93IGF1dG8sIGluZXJ0aWFsIHNjcm9sbGluZylcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuQG1peGluIHh5LWNlbGwtYmxvY2soXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkcHJvcGVydHk6IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCAnb3ZlcmZsb3cteScsICdvdmVyZmxvdy14Jyk7XG5cbiAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgfSBAZWxzZSB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xufVxuXG4vLy8gQ29udGFpbmVyIGZvciBpbnNpZGUgYSBncmlkIGZyYW1lIGNvbnRhaW5pbmcgbXVsdGlwbGUgYmxvY2tzLiBUeXBpY2FsbHkgdXNlZFxuLy8vIGFzIGEgbW9kaWZpZXIgZm9yIGEgYC5jZWxsYCB0byBhbGxvdyB0aGUgY2VsbCB0byBwYXNzIGFsb25nIGZsZXggc2l6aW5nXG4vLy8gY29uc3RyYWludHMgLyBmcm9tIHBhcmVudHMgdG8gY2hpbGRyZW4uXG5AbWl4aW4geHktY2VsbC1ibG9jay1jb250YWluZXIoKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgPiAuZ3JpZC14IHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIHZhbHVlIHRvIG9mZnNldCBhIGNlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ30gVGhlIGNlbGwgb2Zmc2V0IHByb3BlcnR5IHZhbHVlLlxuQGZ1bmN0aW9uIHh5LWNlbGwtb2Zmc2V0KFxuICAkbixcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCwgJGRlZmF1bHQ6ICQtemYtemVyby1icmVha3BvaW50KTtcbiAgJHNpemU6IHh5LWNlbGwtc2l6ZSgkbik7XG5cbiAgJG9mZnNldDogJHNpemU7XG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCkpO1xuICAgICRvZmZzZXQ6IGlmKCRndXR0ZXIgPT0gMCwgJHNpemUsIGNhbGMoI3skc2l6ZX0gKyAjeyRndXR0ZXJ9IC8gMikpO1xuICB9XG4gIEByZXR1cm4gJG9mZnNldDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0L2JvdHRvbSBieSBgJG5gIGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBmb3IgYCRndXR0ZXJzYC4gSXQgY2FuIGJlIGEgYnJlYWtwb2ludCBuYW1lLCBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIGBhdXRvYCBmb3IgYWxsIGJyZWFrcG9pbnRzLiBJZiBhIGxpc3QgaXMgZ2l2ZW4sIG1lZGlhLXF1ZXJpZXMgd2lsbCBiZSBnZW5lcmF0ZWQuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIFNldHMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgb2Zmc2V0LiBJZiBzZXQgdG8gdHJ1ZSB3aWxsIGFwcGx5IG1hcmdpbi10b3AgaW5zdGVhZC5cbkBtaXhpbiB4eS1jZWxsLW9mZnNldChcbiAkbixcbiAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gJGJyZWFrcG9pbnQ6IG51bGwsXG4gJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50LCAkZGVmYXVsdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oJGJyZWFrcG9pbnQsICRtZWRpYS1xdWVyaWVzOiAnZm9yLWxpc3RzJykge1xuICAgICRvZmZzZXQ6IHh5LWNlbGwtb2Zmc2V0KCRuLCAkZ3V0dGVycywgJGd1dHRlci10eXBlKTtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skb2Zmc2V0fTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNlbGwnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbbnVsbF0gLSBbREVQUkVDQVRFRF0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIGJyZWFrcG9pbnQgdG8gdXNlIGZvciB0aGUgY2VsbCBnZW5lcmF0aW9uLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJG91dHB1dCBbKGJhc2Ugc2l6ZSBndXR0ZXJzKV0gLSBDZWxsIHBhcnRzIHRvIG91dHB1dC4gWW91IHdpbGwgbmVlZCB0byBnZW5lcmF0ZSBvdGhlcnMgcGFydHMgb2YgdGhlIGNlbGwgc2VwZXJhdGVseSwgaXQgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSBvdGhlcndpc2UuXG5AbWl4aW4geHktZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItb3V0cHV0OiBudWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG91dHB1dDogKGJhc2Ugc2l6ZSBndXR0ZXJzKVxuKSB7XG4gICRzaXplOiBwZXJjZW50YWdlKGRpdmlkZSgxLCAkbikpO1xuXG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoJHNpemUsICRndXR0ZXItb3V0cHV0LCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsLCAkb3V0cHV0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENvbGxhcHNlcyB0aGUgZ3JpZCBhIGNlbGxzIHdpdGhpbiBpdC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWy5jZWxsXSAtIFRoZSBjaGlsZCBlbGVtZW50IHRvIHJlbW92ZSB0aGUgZ3V0dGVyIGZyb20uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gcmVtb3ZlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb25zIHRvIHJlbW92ZSBndXR0ZXJzIGZyb20uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG1pbi1icmVha3BvaW50IFskLXpmLXplcm8tYnJlYWtwb2ludF0gLSBNaW5pbXVtIGJyZWFrcG9pbnQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGZvciB3aGljaCB0byBjb2xsYXBzZSB0aGUgZ3V0dGVyLlxuQG1peGluIHh5LWdyaWQtY29sbGFwc2UoXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRtaW4tYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnRcbikge1xuICAvLyBGaXJzdCwgbGV0cyBuZWdhdGUgYW55IG1hcmdpbnMgb24gdGhlIHRvcCBsZXZlbFxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgIH1cblxuICAgICAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRleGNsdWRlZC1icHM6IC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJG1pbi1icmVha3BvaW50KTtcblxuICAgIC8vIE91dHB1dCBuZXcgd2lkdGhzIHRvIG5vdCBpbmNsdWRlIGd1dHRlcnNcbiAgICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYoc2wtY29udGFpbigkZXhjbHVkZWQtYnBzLCAkYnApKSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIHBhZGRpbmctI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmFzZS1ncmlkLWNsYXNzZXMge1xuXG4gIC8vIEdyaWQgQ29udGFpbmVyXG4gIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXI7XG5cbiAgICAmLmZsdWlkIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUpO1xuICAgIH1cblxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlLCAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIC5ncmlkLXgge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gIH1cblxuICAuY2VsbCB7XG4gICAgQGluY2x1ZGUgeHktY2VsbChmdWxsLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuXG4gICAgJi5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShhdXRvKTtcbiAgICB9XG5cbiAgICAmLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICB9XG5cbiAgfVxuICAuZ3JpZC14IHtcbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF1dG8gd2lkdGhcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzICYgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgIC5ncmlkLXgge1xuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBSZXNwb25zaXZlIFwiYXV0b1wiIG1vZGlmaWVyXG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKGF1dG8sICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgXCJzaHJpbmtcIiBtb2RpZmllclxuICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1zaHJpbmsge1xuICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay1ob3Jpem9udGFsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHdpZHRoIG1vZGlmaWVyc1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLWhvcml6b250YWwtI3skLXpmLXNpemV9O1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgd2lkdGggd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXhgIG5vdCBvbiBgLmdyaWQteGBcbiAgLmdyaWQtbWFyZ2luLXg6bm90KC5ncmlkLXgpID4gLmNlbGwge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLy8gUmVzZXQgaGVpZ2h0IHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi15YCBub3Qgb24gYC5ncmlkLXlgXG4gIC5ncmlkLW1hcmdpbi15Om5vdCguZ3JpZC15KSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkY2xhc3MtYnJlYWtwb2ludCwgJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWwpIHtcbiAgJHByZWZpeDogaWYoJGNsYXNzLWJyZWFrcG9pbnQgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQsICcnLCAnI3skY2xhc3MtYnJlYWtwb2ludH0tJyk7XG4gID4gLiN7JHByZWZpeH1hdXRvIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoYXV0bywgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgPiAuI3skcHJlZml4fXNocmluayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgJGNsYXNzbmFtZTogaWYoJHZlcnRpY2FsLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9JywgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScpO1xuXG4gICAgPiAjeyRjbGFzc25hbWV9IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktbWFyZ2luLWdyaWQtY2xhc3NlcyhcbiAgJGd1dHRlci1wb3NpdGlvbjogbGVmdCByaWdodCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJHdyYXBwaW5nLXNlbGVjdG9yOiAnLmdyaWQtbWFyZ2luLXgnXG4pe1xuICAjeyR3cmFwcGluZy1zZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlLCAkZ3V0dGVyLXBvc2l0aW9uOiAkZ3V0dGVyLXBvc2l0aW9uKTtcblxuICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwoJHZlcnRpY2FsOiAkdmVydGljYWwsICRvdXRwdXQ6IChzaXplIGd1dHRlcnMpKTtcbiAgICB9XG5cbiAgICAvLyBiYXNlIHN0eWxlcyBuZWVkIHRvIGFsbCBiZSBiZWZvcmUgdGhlIGF1dG8gYW5kIHNocmluayBzdHlsZXNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSBhbmQgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAgID4gLmNlbGwge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoJHZlcnRpY2FsOiAkdmVydGljYWwsICRvdXRwdXQ6IChzaXplIGd1dHRlcnMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG5cbiAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAvLyBmb3IgYWxsIHByaW9yIGJyZWFrcG9pbnRzLlxuICAgICAgLy8gQXMgdGhlaXIgZ3V0dGVyIGlzIGRlZmluZWQgd2l0aCB0aGVpciB3aWR0aC9oZWlnaHQsIGV2ZW4gYnJlYWtwb2ludCB3aXRob3V0IGEgbmV3IG1hcmdpbiBtdXN0IGJlXG4gICAgICAvLyBnZW5lcmF0ZWQgdG8gbm90IGhhdmluZyB0aGVpciB3aWR0aC9oZWlnaHQgb3ZlcnJpZGVkIGJ5IHJlLWFkanVzdGVkIHNtYWxsZXIgYnJlYWtwb2ludHMuXG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkYnAsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJC16Zi1zaXplLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFBhZGRpbmcgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktcGFkZGluZy1ncmlkLWNsYXNzZXMge1xuICAuZ3JpZC1wYWRkaW5nLXgge1xuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgZ3JpZHMgd2l0aGluIGBncmlkLWNvbnRhaW5lci9ncmlkLWNvbnRhaW5lci5mbHVpZGBcbiAgICAvLyBUaGlzIGFsbG93cyBtYXJnaW4gYW5kIHBhZGRpbmcgZ3JpZHMgdG8gbGluZSB1cCB3aXRoIGVhY2hvdGhlclxuICAgIC5ncmlkLWNvbnRhaW5lcjpub3QoLmZ1bGwpID4gJiB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBCbG9jayBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJG46ICRpLCAkc2VsZWN0b3I6ICcuY2VsbCcsICRndXR0ZXItdHlwZTogcGFkZGluZywgJG91dHB1dDogKHNpemUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgICAvLyBmb3IgcHJpb3IgYnJlYWtwb2ludHMgYmFzZWQgb24gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyLlxuICAgICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgICBAaWYobWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRicCkpIHtcbiAgICAgICAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skYnB9LXVwLSN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBtYXJnaW4sICRvdXRwdXQ6IChzaXplKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkbjogJGksICRzZWxlY3RvcjogJy5jZWxsJywgJGd1dHRlci10eXBlOiBtYXJnaW4sICRvdXRwdXQ6IChzaXplKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29sbGFwc2UgY2xhc3Nlc1xuQG1peGluIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgICAgLiN7JGJwfS1tYXJnaW4tY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogbWFyZ2luLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgICAgLiN7JGJwfS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gT2Zmc2V0IGNsYXNzZXNcbkBtaXhpbiB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8sICRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLW1hcmdpbi14ID4gLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFZlcnRpY2FsIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcyhcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgfVxuICB9XG5cbiAgLmdyaWQteSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZCh2ZXJ0aWNhbCwgZmFsc2UpO1xuXG5cbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtcmVzZXQoKTtcbiAgICB9XG5cbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShhdXRvLCAkZ3V0dGVyLXR5cGU6IG5vbmUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShzaHJpbmssICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzIGFuZCBQUnMgZm9yIHRoZSBiYWNrc3Rvcnk6XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMTY0XG4gICAgICAkc3RyOiBcIj4gLiN7JC16Zi1zaXplfS1zaHJpbmssID4gLiN7JC16Zi1zaXplfS1mdWxsXCI7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAkc3RyOiAkc3RyICsgXCIsID4gLiN7JC16Zi1zaXplfS0jeyRpfVwiXG4gICAgICB9XG4gICAgICAjeyRzdHJ9IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gUmVzcG9uc2l2ZSBcImF1dG9cIiBtb2RpZmllclxuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoYXV0bywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzcG9uc2l2ZSBcInNocmlua1wiIG1vZGlmaWVyXG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay12ZXJ0aWNhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc3BvbnNpdmUgd2lkdGggbW9kaWZpZXJzXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9O1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICAgID4gLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgfVxuXG59XG5cbkBtaXhpbiB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQ6IHRydWUsICRtYXJnaW4tZ3JpZDogdHJ1ZSkge1xuICAvLyBGcmFtZWQgZ3JpZCBzdHlsZXNcbiAgLmdyaWQtZnJhbWUge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gIH1cblxuICAuY2VsbCAuZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gIH1cblxuICAuY2VsbC1ibG9jayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICB9XG5cbiAgLmNlbGwtYmxvY2steSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgfVxuXG5cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICB9XG5cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG5cbiAgICAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgICB9XG5cbiAgICAuY2VsbCAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLXkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZlcnRpY2FsLWdyaWQge1xuICAgIC5ncmlkLXkge1xuICAgICAgJi5ncmlkLWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgJi4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgLmdyaWQteS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGluY2x1ZGUtYmFzZTogZmFsc2UpO1xuICAgIH1cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAuZ3JpZC1tYXJnaW4teS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRmluYWwgY2xhc3Nlc1xuQG1peGluIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzKFxuICAkYmFzZS1ncmlkOiB0cnVlLFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWUsXG4gICRibG9jay1ncmlkOiB0cnVlLFxuICAkY29sbGFwc2U6IHRydWUsXG4gICRvZmZzZXQ6IHRydWUsXG4gICR2ZXJ0aWNhbC1ncmlkOiB0cnVlLFxuICAkZnJhbWUtZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICBAaWYoJGJhc2UtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJhc2UtZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBNYXJnaW4gZ3JpZFxuICBAaWYoJG1hcmdpbi1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gUGFkZGluZyBncmlkXG4gIEBpZigkcGFkZGluZy1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktcGFkZGluZy1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWRcbiAgQGlmKCRibG9jay1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBDb2xsYXBzZSBndXR0ZXJzXG4gIEBpZigkY29sbGFwc2UpIHtcbiAgICBAaW5jbHVkZSB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIE9mZnNldCBndXR0ZXJzXG4gIEBpZigkb2Zmc2V0KSB7XG4gICAgQGluY2x1ZGUgeHktb2Zmc2V0LWNlbGwtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JpZFxuICBAaWYoJHZlcnRpY2FsLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIEBpZiAoJGZyYW1lLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQsICRtYXJnaW4tZ3JpZClcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBJZ25vcmVkIGlmIG51bGwgKGRlZmF1bHQpXG4vLy8gQHR5cGUgRm9udC1XZWlnaHRcbiRidXR0b24tZm9udC13ZWlnaHQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgYnV0dG9ucywgdHJhbnNwYXJlbnQgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRpdGlvbmFsIHJlc3BvbnNpdmUgY2xhc3NlcyBmb3IgLmV4cGFuZGVkXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICBib3JkZXI6ICRidXR0b24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgb3IgY2xlYXIgYnV0dG9uIGZpbGxpbmcgYWNjb3JkaW5nIHRvIGAkZmlsbGAuXG4vLy8gU2VlIG1peGluIGBidXR0b24tZmlsbC1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmaWxsIFskYnV0dG9uLWZpbGxdIC0gVHlwZSBvZiBmaWxsaW5nIGJldHdlZW4gYGhvbGxvd2AgYW5kIGBjbGVhcmAuIGBzb2xpZGAgaGFzIG5vIGVmZmVjdHMuXG5AbWl4aW4gYnV0dG9uLWZpbGwoXG4gICRmaWxsOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaWYgJGZpbGwgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGNsZWFyIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY2xlYXI7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZXMgb2YgYSBzb2xpZC9ob2xsb3cvY2xlYXIgYnV0dG9uIGZpbGxpbmcgYWNjb3JkaW5nIHRvIGAkZmlsbGAuXG4vLy8gU2VlIG1peGlucyBgYnV0dG9uLXN0eWxlYCwgYGJ1dHRvbi1ob2xsb3ctc3R5bGVgIGFuZCBgYnV0dG9uLWNsZWFyLXN0eWxlYCBmb3IgZWZmZWN0cyBvZiB2aXN1YWwgc3R5bGluZyBwYXJhbWV0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZpbGwgWyRidXR0b24tZmlsbF0gLSBUeXBlIG9mIGZpbGxpbmcgYmV0d2VlbiBgaG9sbG93YCBhbmQgYGNsZWFyYC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIC1cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIC1cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gLVxuQG1peGluIGJ1dHRvbi1maWxsLXN0eWxlKFxuICAkZmlsbDogJGJ1dHRvbi1maWxsLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGZpbGwgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBjbGVhciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNsZWFyLXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBob2xsb3cgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgYW5kIGJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRob3Zlci1saWdodG5lc3MgWyRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc10gLSBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJvcmRlci13aWR0aCBbJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXSAtIEJvcmRlciB3aWR0aCBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgYmFzZSBzdHlsZXMgb2YgYSBjbGVhciBidXR0b24uXG4vLy8gU2VlIG1peGluIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWNsZWFyIHtcbiAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuQG1peGluIGJ1dHRvbi1jbGVhci1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCBhbmQgcmVzZXRpbmcgdGhlIGN1cnNvci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9wYWNpdHkgWyRidXR0b24tb3BhY2l0eS1kaXNhYmxlZF0gLSBPcGFjaXR5IG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkXG4pIHtcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRzdHlsZSk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRzdHlsZSwgJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbigkc3R5bGU6IG5vbmUpO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICBAaWYgJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkIHtcbiAgICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IG9ubHkpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LW9ubHktZXhwYW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9IGRvd24pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZG93bi1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSkge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1leHBhbmRlZCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU29saWQsIGhvbGxvdyAmIGNsZWFyIHN0eWxlc1xuICAgIEBlYWNoICRmaWxsaW5nIGluIChzb2xpZCBob2xsb3cgY2xlYXIpIHtcbiAgICAgICRzZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnLiN7JGZpbGxpbmd9Jyk7XG5cbiAgICAgICYjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbCgkZmlsbGluZyk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nKTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZywgJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3csICYuY2xlYXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG5cbiAgYS5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC4gKE9ubHkgbmVlZGVkIHdoZW4gJGdsb2JhbC1mbGV4Ym94OiBmYWxzZTspXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBEaXNhYmxlIGNsZWFyZml4XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE1ha2UgYnV0dG9ucyBib25kZWQgd2l0aG91dCBnYXAgYmV0d2VlbiB0aGVtLiBCb3JkZXJzIGJldHdlZW4gYnV0dG9ucyBhcmUgbWVyZ2VkXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLW5vLWdhcHMoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiByZW0tY2FsYygtJGJvcmRlci13aWR0aCk7XG5cbiAgICArICN7JHNlbGVjdG9yfSB7XG4gICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgLy8gRGlzYWJsZSBjbGVhcmZpeFxuICAgIH1cbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBPbmUgY2hpbGRcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZShkaXZpZGUoMSwgJGkpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJGJhc2Utc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skYmFzZS1zZWxlY3Rvcn0ge1xuICAgICAgICAvLyBEbyBub3QgZ2VuZXJhdGUgYnV0dG9uIGJhc2Ugc3R5bGVzIGZvciB0aGUgZGVmYXVsdCBmaWxsaW5nXG4gICAgICAgIEBpZigkYnV0dG9uLWZpbGwgIT0gJGZpbGxpbmcpIHtcbiAgICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAkaW5kaXZpZHVhbC1zZWxlY3RvcjogaWYoJGJ1dHRvbi1maWxsID09ICRmaWxsaW5nLCBudWxsLCAnICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfS4jeyRuYW1lfScpO1xuXG4gICAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0sICN7JGluZGl2aWR1YWwtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsLXN0eWxlKCRmaWxsaW5nLCAkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5uby1nYXBzIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1uby1nYXBzO1xuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcblxuICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bS5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi16LWluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBzaXplIHRvIHVzZSBhcyBkZWZhdWx0XG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tc2l6ZVxuLy8vIEBzZWUgJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsXG4vLy8gQHNlZSAkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsXG4kY2xvc2VidXR0b24tZGVmYXVsdC1zaXplOiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVXNlZCB0byBnZW5lcmF0ZSBzaXppbmcgbW9kaWZpZXJzLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6ICRjbG9zZWJ1dHRvbi16LWluZGV4O1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAvLyBHZW5lcmF0ZSBhIHBsYWNlaG9sZGVyIGFuZCBhIGNsYXNzIGZvciBlYWNoIHNpemVcbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGNsb3NlYnV0dG9uLXNpemUge1xuICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAlemYtY2xvc2UtYnV0dG9uLS0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoJG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAZXh0ZW5kICV6Zi1jbG9zZS1idXR0b24tLSN7JG5hbWV9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVzZSBieSBkZWZhdWx0IHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgZGVmYXVsdCBzaXplXG4gICAgQGV4dGVuZCAlemYtY2xvc2UtYnV0dG9uLS0jeyRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemV9O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcbiAgLy8gUHJvZ3Jlc3MgYmFyXG4gIC5wcm9ncmVzcyB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyXG4gIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gIH1cblxuICAvLyBJbm5lciBtZXRlciB0ZXh0XG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFtUT0RPXSBDaGVjayBob3cgcGx1Z2luIGNvbmZpcm1zIGRpc2FibGVkIG9yIHZlcnRpY2FsIHN0YXR1c1xuLy8gW1RPRE9dIENoZWNrIGlmIHRyYW5zaXRpb246IGFsbDsgaXMgbmVjZXNzYXJ5XG5cbi8vLy9cbi8vLyBAZ3JvdXAgc2xpZGVyXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHNsaWRlciB3aWR0aCBvZiBhIHZlcnRpY2FsIHNsaWRlci4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0aWVzIHRvIGFwcGx5IHRvIHRoZSBzbGlkZXIgaGFuZGxlIGFuZCBmaWxsLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgYWN0aXZlIGZpbGwgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWZpbGwtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0aGUgc2xpZGVyIGhhbmRsZXMuXG5AbWl4aW4gc2xpZGVyLWhhbmRsZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgfVxuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gIH1cbn1cblxuQG1peGluIHNsaWRlci1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuQG1peGluIHNsaWRlci12ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zbGlkZXIge1xuICAvLyBDb250YWluZXJcbiAgLnNsaWRlciB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIEZpbGwgYXJlYVxuICAuc2xpZGVyLWZpbGwge1xuICAgIEBpbmNsdWRlIHNsaWRlci1maWxsO1xuICB9XG5cbiAgLy8gRHJhZ2dhYmxlIGhhbmRsZVxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWhhbmRsZTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5zbGlkZXIuZGlzYWJsZWQsXG4gIC5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBzbGlkZXJcbiAgLnNsaWRlci52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gUlRMIHN1cHBvcnRcbiAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAuc2xpZGVyOm5vdCgudmVydGljYWwpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBhIGRpc2FibGVkIHN3aXRjaC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtb3BhY2l0eS1kaXNhYmxlZDogLjUgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgZm9yIGEgZGlzYWJsZWQgc3dpdGNoLlxuLy8vIEB0eXBlIEN1cnNvclxuJHN3aXRjaC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogJHN3aXRjaC1tYXJnaW47XG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gVGhlc2UgcHJvcGVydGllcyBjYXNjYWRlIGRvd24gdG8gdGhlIHN3aXRjaCB0ZXh0XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBpbnB1dC4gQXBwbHkgdGhpcyB0byBhbiBgPGlucHV0PmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgcGFkZGxlIG9mIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIGEgYDxsYWJlbD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtcGFkZGxlIHtcbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1wYWRkbGUtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgICB9XG4gIH1cblxuICAvLyBpbmRpY2F0ZSBhIGRpc2FibGVkIHN3aXRjaFxuICBpbnB1dDpkaXNhYmxlZCB+ICYge1xuICAgIGN1cnNvcjogJHN3aXRjaC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgb3BhY2l0eTogJHN3aXRjaC1vcGFjaXR5LWRpc2FibGVkO1xuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzd2l0Y2gtaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxuQG1peGluIHN3aXRjaC1zaXplKFxuICAkZm9udC1zaXplOiAxcmVtLFxuICAkc3dpdGNoLWhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cbikge1xuXG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAkcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtb2Zmc2V0O1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcbiAgfVxuXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcbiAgfVxuXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcbiAgJXN3aXRjaC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dDtcbiAgfVxuXG4gIC8vIEFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtYWN0aXZlO1xuICB9XG5cbiAgLy8gSW5hY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtaW5hY3RpdmU7XG4gIH1cblxuICAvLyBTd2l0Y2ggc2l6ZXNcbiAgLnN3aXRjaC50aW55IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksICRzd2l0Y2gtaGVpZ2h0LXRpbnksICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMiksICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFibGVcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSBzdHJpcGVkIHRhYmxlIHJvd3MgYW5kIHRoZSB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFibGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRhYmxlcyBhcmUgc3RyaXBlZCBieSBkZWZhdWx0IGFuZCBhbiAudW5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuIElmIGBmYWxzZWAsIGEgLnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAqIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggc3RhY2tlZCB0YWJsZSBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVzdCBbZmFsc2VdIC0gTmVlZGVkIGlmIHlvdSBvbmx5IHdhbnQgdG8gYXBwbHkgdGhpcyB0byBhIHNwZWNpZmljIHRhYmxlLlxuQG1peGluIHRhYmxlKFxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxuICAkbmVzdDogZmFsc2Vcbikge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBpZiAkbmVzdCB7XG4gICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gaG9yaXpvbnRhbGx5IHNjcm9sbCB0aGUgdGFibGUgd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3MgaG9yaXpvbnRhbGx5LlxuQG1peGluIHRhYmxlLXNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0aGVhZCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBoZWFkZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1oZWFkLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBmb290ZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1mb290LXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlIGlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2UgaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUoJG5lc3Q6IGZhbHNlKSB7XG4gIHRhYmxlIHtcbiAgICBAaW5jbHVkZSB0YWJsZSgkbmVzdDogJG5lc3QpO1xuICB9XG5cbiAgdGFibGUuc3RhY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRhYmxlLXN0YWNrLWJyZWFrcG9pbnQgZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cblxuICAudGFibGUtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJhZGdlLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGJhZGdlLWNvbG9yLCAkYmFkZ2UtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNlcGVyYXRvciBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2ggaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCkge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoO1xufVxuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nICFkZWZhdWx0O1xuXG4vLy8gVXNlZCBjaGFyYWN0ZXIgZm9yIHRoZSBicmVhZGNydW1iIHNlcGFyYXRvciBpbiBydGwgbW9kZS5cbi8vLyBAdHlwZSBDb250ZW50XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGw6ICdcXFxcJyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvciBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3I7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3Ige1xuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxuICAgICAgJHNlcGFyYXRvcjogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0sICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bCk7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIGNvbnRlbnQ6ICRzZXBhcmF0b3I7XG4gICAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhbGxvdXRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZSBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBDYWxsb3V0IHBhZGRpbmdzLlxuLy8vIEB0eXBlIE1hcFxuJGNhbGxvdXQtc2l6ZXM6IChcbiAgc21hbGw6IDAuNXJlbSxcbiAgZGVmYXVsdDogMXJlbSxcbiAgbGFyZ2U6IDNyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQW1vdW50IHRvIHRpbnQgbGlua3MgdXNlZCB3aXRoaW4gY29sb3JlZCBwYW5lbHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6IG1hcC1nZXQoJGNhbGxvdXQtc2l6ZXMsIGRlZmF1bHQpO1xuXG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkY2FsbG91dC1mb250LWNvbG9yLCAkY2FsbG91dC1mb250LWNvbG9yLWFsdCkpO1xufVxuXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcbiAgLmNhbGxvdXQge1xuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gbWFwLXJlbW92ZSgkY2FsbG91dC1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgkcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FyZFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhcmRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNhcmQgc2hhZG93LlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbi5cbi8vLyBAdHlwZSBudW1iZXJcbiRjYXJkLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIGZvbnQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gLSBCb3R0b20gbWFyZ2luIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGJvcmRlciAtIEJvcmRlciBhcm91bmQgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmFkaXVzIC0gYm9yZGVyIHJhZGl1cyBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGFkb3cgLSBib3ggc2hhZG93IG9mIHRoZSBjYXJkLlxuQG1peGluIGNhcmQtY29udGFpbmVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkY2FyZC1mb250LWNvbG9yLFxuICAkbWFyZ2luOiAkY2FyZC1tYXJnaW4tYm90dG9tLFxuICAkYm9yZGVyOiAkY2FyZC1ib3JkZXIsXG4gICRyYWRpdXM6ICRjYXJkLWJvcmRlci1yYWRpdXMsXG4gICRzaGFkb3c6ICRjYXJkLXNoYWRvd1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cblxuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBkaXZpZGVyLlxuQG1peGluIGNhcmQtZGl2aWRlcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWRpdmlkZXItYmFja2dyb3VuZCxcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBzZWN0aW9uLlxuQG1peGluIGNhcmQtc2VjdGlvbihcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYXJkIHtcbiAgLmNhcmQge1xuICAgIEBpbmNsdWRlIGNhcmQtY29udGFpbmVyO1xuICB9XG5cbiAgLmNhcmQtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgY2FyZC1kaXZpZGVyO1xuICB9XG5cbiAgLmNhcmQtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgY2FyZC1zZWN0aW9uO1xuICB9XG5cbiAgLy8gRm9yIElFIDExIC0gRmxleGJ1Z1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL2ZsZXhidWdzL2lzc3Vlcy83NVxuICAuY2FyZC1pbWFnZSB7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgZGlzcGxheTogbm9uZTtcblxuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG5cbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuXG5cbiAgLy8gQWxsb3cgYW4gaW50ZXJtaXR0ZW50IHN0YXRlIHRvIGRvIHBvc2l0aW9uaW5nIGJlZm9yZSBtYWtpbmcgdmlzaWJsZS5cbiAgJi5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYuaXMtb3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIHBhZ2luYXRpb24gb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgbWFyZ2luIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzXG4vLy8gYW5kIG9wdGlvbmFsbHkgY3VycmVudCBwYWdlIG51bWJlci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9uIG1vYmlsZSBldmVuIGlmIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgZmFsc2VgLlxuLy8vIFRoaXMgcGFyYW1ldGVyIHdpbGwgb25seSBvdmVycmlkZSB0aGUgdmlzaWJpbGl0eSBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IGl0ZW0gZm9yIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO2AsXG4vLy8gaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIHZpc2liaWxpdHkgd2hlbiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYHRydWVgLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENvbnRlbnQgZm9yIHRoZSBwcmV2aW91cyBhcnJvdyB3aGVuIGAkcGFnaW5hdGlvbi1hcnJvd3NgIGlzIGB0cnVlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhZ2luYXRpb24tYXJyb3ctcHJldmlvdXM6ICdcXDAwQUInICFkZWZhdWx0O1xuXG4vLy8gQ29udGVudCBmb3IgdGhlIG5leHQgYXJyb3cgd2hlbiBgJHBhZ2luYXRpb24tYXJyb3dzYCBpcyBgdHJ1ZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwYWdpbmF0aW9uLWFycm93LW5leHQ6ICdcXDAwQkInICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgY3VycmVudCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCxcbiAgJGNvbG9yLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jdXJyZW50O1xuICBjb2xvcjogJGNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3Jcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29udGVudDogJ1xcMjAyNic7XG4gIGNvbG9yOiAkY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJHBhZ2luYXRpb24tYXJyb3ctcHJldmlvdXM7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAkcGFnaW5hdGlvbi1hcnJvdy1uZXh0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvb2x0aXBcbi8vLy9cblxuLy8vIERlZmF1bHQgY3Vyc29yIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhhcy10aXAtY3Vyc29yOiBoZWxwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYm90dG9tIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgTGlzdFxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGZvbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIHRvb2x0aXAgdGV4dC4gQnkgZGVmYXVsdCwgd2UgcmVjb21tZW5kIGEgc21hbGxlciBmb250IHNpemUgdGhhbiB0aGUgYm9keSBjb3B5LlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgaGVpZ2h0IGZvciB0b29sdGlwcy4gVGhpcyBpcyBoZWxwZnVsIGZvciBjYWxjdWxhdGluZyB0aGUgZGlzdGFuY2Ugb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9vbHRpcCB3b3JkLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJvcmRlci1ib3R0b206ICRoYXMtdGlwLWJvcmRlci1ib3R0b207XG4gIGZvbnQtd2VpZ2h0OiAkaGFzLXRpcC1mb250LXdlaWdodDtcbiAgY3Vyc29yOiAkaGFzLXRpcC1jdXJzb3I7XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArICN7JHRvb2x0aXAtcGlwLWhlaWdodH0pO1xuICB6LWluZGV4OiAxMjAwO1xuXG4gIG1heC13aWR0aDogJHRvb2x0aXAtbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAkdG9vbHRpcC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICR0b29sdGlwLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcblxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gICYuYm90dG9tIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xuICAgICAgYm90dG9tOiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYudG9wIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5sZWZ0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYucmlnaHQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTtcbiAgfVxuXG4gICYuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAlO1xuICAgIHRvcDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tbGVmdDo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b29sdGlwIHtcbiAgLmhhcy10aXAge1xuICAgIEBpbmNsdWRlIGhhcy10aXA7XG4gIH1cblxuICAudG9vbHRpcCB7XG4gICAgQGluY2x1ZGUgdG9vbHRpcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDb250ZW50IGZvciB0aGUgcGx1cyBpY29uIHdoZW4gYCRhY2NvcmRpb24tcGx1c21pbnVzYCBpcyBgdHJ1ZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRhY2NvcmRpb24tcGx1cy1jb250ZW50OiAnXFwwMDJCJyAhZGVmYXVsdDtcblxuLy8vIENvbnRlbnQgZm9yIHRoZSBtaW51cyBpY29uIHdoZW4gYCRhY2NvcmRpb24tcGx1c21pbnVzYCBpcyBgdHJ1ZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRhY2NvcmRpb24tbWludXMtY29udGVudDogJ1xcMjAxMycgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYWNjb3JkaW9uIHRpdGxlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIgKFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi1iYWNrZ3JvdW5kXG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAkYWNjb3JkaW9uLXBsdXMtY29udGVudDtcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRhY2NvcmRpb24tbWludXMtY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuICBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJi5taWRkbGUge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmLmJvdHRvbSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHRhYnMtY29udGFpbmVyIChcbiAgJG1hcmdpbjogJHRhYi1tYXJnaW4sXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWJhY2tncm91bmQsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkbWFyZ2luO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGFpbmVyIHRvIGhhdmUgdmVydGljYWwgdGFicy4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250YWluZXIoKWAuXG5AbWl4aW4gdGFicy1jb250YWluZXItdmVydGljYWwge1xuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBsaW5rcyB3aXRoaW4gYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBgPGxpPmAgZWxlbWVudHMgaW5zaWRlIGEgdGFiIGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXRpdGxlIChcbiAgJHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplLFxuICAkY29sb3I6ICR0YWItY29sb3IsXG4gICRjb2xvci1hY3RpdmU6ICR0YWItYWN0aXZlLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXIsXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZVxuKSB7XG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgPiBhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiA0cHggc29saWQgJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIHBpbGwgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gbWFyZ2luIGZvciBpdGVtcyBpbiBhIHNpbXBsZSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIHRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS4uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZTogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgc3RhdGUuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGBhY3RpdmVgIHdpdGggYGlzLWFjdGl2ZWAuXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYGFjdGl2ZWAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBjZW50ZXJlZC4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYC5tZW51LWNlbnRlcmVkID4gLm1lbnVgIHdpdGggYC5tZW51LmFsaWduLWNlbnRlcmAuXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYG1lbnUtY2VudGVyZWRgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIHVzaW5nIGBpY29uLSpgIGNsYXNzZXMgd2l0aG91dCBgLmljb25zYCBjbGFzc2VzXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgdGhpcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG5cbiAgYSxcbiAgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW1zLXBhZGRpbmc7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWxpZ24gbWVudSBpdGVtcy5cbkBtaXhpbiBtZW51LWFsaWduKCRhbGlnbm1lbnQpIHtcbiAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGNlbnRlciB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gVGhpcyBlZmZlY3RzIHRoZSBzaWRlIG9mIHRoZSBgPGxpPmAgdGhhdCByZWNlaXZlcyB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIFskbWVudS1zaW1wbGUtbWFyZ2luXSAtIFRoZSBtYXJnaW4gdG8gYXBwbHkgdG8gZWFjaCBgPGxpPmAuXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0LCAkbWFyZ2luOiAkbWVudS1zaW1wbGUtbWFyZ2luKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tI3skZGlyfTogJG1hcmdpbjtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkbWFyZ2luIFskbWVudS1uZXN0ZWQtbWFyZ2luXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG5lc3RlZC1hbGlnbm1lbnQgW2xlZnRdIC0gQWxpZ25tZW50IG9mIHRoZSBuZXN0ZWQgY2xhc3NcbkBtaXhpbiBtZW51LW5lc3RlZChcbiAgJG1hcmdpbjogJG1lbnUtbmVzdGVkLW1hcmdpbixcbiAgJG5lc3RlZC1hbGlnbm1lbnQ6IGxlZnRcbikge1xuICBAaWYgJG5lc3RlZC1hbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWFyZ2luO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG4gIH1cblxufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGljb25zIGluIG1lbnVzLlxuQG1peGluIG1lbnUtaWNvbnMoKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGltZyxcbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICArIHNwYW4ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWxpZ24gdG9wL2JvdHRvbSBpY29ucyB3aXRoaW4gYSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGFsaWdubWVudCBbY2VudGVyXSAtIEFsaWdubWVudCBvZiB0aGUgaWNvblxuQG1peGluIG1lbnUtaWNvbi1hbGlnbm1lbnQoJGFsaWdubWVudDogY2VudGVyKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICYuaWNvbi10b3AsXG4gICAgJi5pY29uLWJvdHRvbSB7XG4gICAgICBsaSBhIHtcbiAgICAgICAgaW1nLFxuICAgICAgICBpLFxuICAgICAgICBzdmcge1xuICAgICAgICAgIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgcG9zaXRpb24gY2xhc3NlcyBmb3IgaWNvbnMgd2l0aGluIGEgbWVudS5cbkBtaXhpbiBtZW51LWljb24tcG9zaXRpb24oJHBvc2l0aW9uOiBsZWZ0LCAkc3BhY2luZzogJG1lbnUtaWNvbi1zcGFjaW5nKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRzcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtZW51LXN0YXRlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmUsICgkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZSwgJG1lbnUtaXRlbS1jb2xvci1hbHQtYWN0aXZlKSk7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLWFsaWdubWVudChsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1hbGlnbm1lbnQobGVmdCk7XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtwb2ludCBzcGVjaWZpYyB2ZXJzaW9uc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEljb24gQmFzZSBTdHlsZXNcbiAgICAmLmljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LWljb25zLWJhY2stY29tcGF0IHtcbiAgICAgICYuaWNvbi10b3AsXG4gICAgICAmLmljb24tcmlnaHQsXG4gICAgICAmLmljb24tYm90dG9tLFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lbnUgaWNvbiBwb3NpdGlvblxuICAgIC8vIEluY2x1ZGVzIHNwZWNpZmljaXR5IHRvIG5lc3RlZCBpY29ucyB3aXRoIGEgZGlmZmVyZW50IHBvc2l0aW9uXG4gICAgJixcbiAgICAmLm5lc3RlZCB7XG4gICAgICAvLyBJY29uIExlZnRcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGxlZnQpO1xuICAgICAgfVxuXG4gICAgICAvLyBJY29uIFJpZ2h0XG4gICAgICAmLmljb24tcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24ocmlnaHQpO1xuICAgICAgfVxuXG4gICAgICAvLyBJY29uIFRvcFxuICAgICAgJi5pY29uLXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbih0b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBJY29uIEJvdHRvbVxuICAgICAgJi5pY29uLWJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihib3R0b20pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1zdGF0ZS1iYWNrLWNvbXBhdCB7XG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGxlZnRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1sZWZ0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24ocmlnaHQpO1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLWFsaWdubWVudChyaWdodCk7XG5cbiAgICAgIC5uZXN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkbmVzdGVkLWFsaWdubWVudDogcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGNlbnRlclxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQge1xuICAgIC5tZW51LWNlbnRlcmVkIHtcbiAgICAgID4gLm1lbnUge1xuICAgICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBhY2NvcmRpb24gbWVudXMgaGF2ZSB0aGUgZGVmYXVsdCBhcnJvdyBzdHlsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIGJvcmRlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBMaXN0XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgaGVpZ2h0LlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50Om5vdCguaGFzLXN1Ym1lbnUtdG9nZ2xlKSA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplLCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUgKiAwLjUpO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMXJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cbn1cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51IHtcblxuICAuYWNjb3JkaW9uLW1lbnUge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4sIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgbGkge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgfVxuXG4gIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gIC5zdWJtZW51LXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xuXG4gICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgIGhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0O1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI7XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcblxuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJvdGF0ZSB0aGUgYXJyb3cgd2hlbiBtZW51IGlzIG9wZW5cbiAgLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICB9XG5cbiAgLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZyBpbiB0aGUgc3VibWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcmlsbGRvd24tYXJyb3ctc2l6ZTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgfVxuXG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSB0b3AgbGV2ZWwgPHVsPlxuICAuZHJpbGxkb3duIHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBcHBsaWVkIHRvIHN1Ym1lbnUgPHVsPnNcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG5cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdWJtZW51IGl0ZW0gcGFkZGluZ1xuICAgICAgYSB7XG4gICAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgICAgQGluY2x1ZGUgemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgcGFkZGluZyBmb3IgYWxpZ25pbmcgdGhlIGFycm93IGNvcnJlY3RseS5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3Igc3ViLW1lbnUgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgKiAwLjUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgIH1cblxuICAgIC8vIFRvcC1sZXZlbCBpdGVtXG4gICAgPiBsaSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8vIFRvcC1sZXZlbCBpdGVtIGFjdGl2ZSBzdGF0ZVxuICAgID4gbGkuaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmRyb3Bkb3duICYgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9mZi1jYW52YXNcbi8vLy9cblxuLy8vIFdpZHRoIG1hcCBvZiBhIGxlZnQvcmlnaHQgb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBtYXAgb2YgYSB0b3AvYm90dG9tIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGZvciB0aGUgb2ZmLWNhbnZhcyBvdmVybGFwIHBhbmVsLlxuLy8vIEB0eXBlIFNoYWRvd1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBzaXplIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweCAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgY29sb3IgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgY29udGVudCBvdmVybGF5LlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDogMTEgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYHB1c2hgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXB1c2gtemluZGV4OiAxMiAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgb3ZlcmxhcGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEzICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHVzaW5nIHRoZSBgcmV2ZWFsLWZvci0qYCBjbGFzc2VzIG9yIG1peGluLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxMiAhZGVmYXVsdDtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzICFkZWZhdWx0O1xuXG4vLy8gVGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhIHJldmVhbGVkIG9mZi1jYW52YXMgd2lsbCBiZSBmaXhlZC1wb3NpdGlvbiwgYW5kIHNjcm9sbCB3aXRoIHRoZSBzY3JlZW4uXG4vLy8gQHR5cGUgQm9vbFxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBDU1MgY2xhc3MgdXNlZCBmb3IgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGUgb2ZmLWNhbnZhcyBtaXhpbnMgdXNlIHRoaXMgdG8gdGFyZ2V0IHRoZSBwYWdlIGNvbnRlbnQuXG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNlbGluZSBzdHlsZXMgZm9yIG9mZi1jYW52YXMuIFRoaXMgQ1NTIGlzIHJlcXVpcmVkIHRvIG1ha2UgdGhlIG90aGVyIHBpZWNlcyB3b3JrLlxuQG1peGluIG9mZi1jYW52YXMtYmFzaWNzIHtcblxuICAvLy8gVHJhbnNmb3JtIGRlcHJlY2F0ZWQgc2l6ZSBzZXR0aW5ncyBpbnRvIG1hcCAmIHNob3cgd2FybmluZ1xuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXNpemVzIGluc3RlYWQnO1xuICB9XG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cblxuICAvLyBDaGVja3MgdGhlIHotaW5kZXhlcyBhbmQgaW5jcmVhc2UgdGhlbSBkdWUgdG8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIG92ZXJsYXkncyB6LWluZGV4IGlzIG5ldyBzaW5jZSB2Ni40IGFuZCBtYXkgYmUgaWRlbnRpY2FsIHRvIHRoZSB1c2VyIGN1c3RvbSBzZXR0aW5ncyBvZiB0aGUgcHVzaCB6LWluZGV4LlxuICBAaWYgJG9mZmNhbnZhcy1wdXNoLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1wdXNoLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuICBAaWYgJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleCA8PSAkb2ZmY2FudmFzLXB1c2gtemluZGV4IHsgJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleCArIDEgIWdsb2JhbDsgfVxuICBAaWYgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cblxuICAvLyBIaWRlcyBvdmVyZmxvdyBvbiBib2R5IHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuICAuaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBvdmVybGF5IChnZW5lcmF0ZWQgYnkgSmF2YVNjcmlwdClcbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZywgdmlzaWJpbGl0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG5cbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDtcblxuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAmLmlzLWNsb3NhYmxlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktYWJzb2x1dGUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHdyYXBwZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy13cmFwcGVyKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2UoXG4gICRiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQsXG4gICR0cmFuc2l0aW9uOiAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsXG4gICRmaXhlZDogdHJ1ZVxuKSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICBAaWYgJGZpeGVkID09IHRydWUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLy8gU2V0IHRoZSBvZmYtY2FudmFzIHotaW5kZXguXG4gIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG5cbiAgLy8gSW5jcmVhc2UgQ1NTIHNwZWNpZmljaXR5XG4gICYuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuICB9XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgLy8gSGlkZSBpbmFjdGl2ZSBvZmYtY2FudmFzIHdpdGhpbiB0aGUgY29udGVudCB0aGF0IGhhdmUgdGhlIHNhbWUgcG9zaXRpb25cbiAgJi5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE92ZXJsYXAgb25seSBzdHlsZXMuXG4gICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4O1xuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6ICRvZmZjYW52YXMtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldHMgdHJhbnNmb3JtIHRvIDAgdG8gc2hvdyBhbiBvZmYtY2FudmFzIHBhbmVsLlxuICAmLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBwb3NpdGlvbiBhbiBvZmYtY2FudmFzIHBhbmVsIHRvIHRoZSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20uXG5AbWl4aW4gb2ZmLWNhbnZhcy1wb3NpdGlvbihcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkb3JpZW50YXRpb246IGhvcml6b250YWwsXG4gICRzaXplczogaWYoJG9yaWVudGF0aW9uID09IGhvcml6b250YWwsICRvZmZjYW52YXMtc2l6ZXMsICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXMpXG4pIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSBpcyBzZXQsIGFkZCBpbm5lciBib3gtc2hhZG93LlxuICAvLyBUaGlzIG1pbWljcyB0aGUgb2ZmLWNhbnZhcyBwYW5lbCBoYXZpbmcgYSBsb3dlciB6LWluZGV4LCB3aXRob3V0IGhhdmluZyB0byBoYXZlIG9uZS5cbiAgQGlmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUge1xuICAgICYuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHJpZ2h0LCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhsZWZ0LCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3coYm90dG9tLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3codG9wLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplLCAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLy8vIFNldHMgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIG9mZi1jYW52YXMtY29udGVudCgpIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgLy8gQmluZCB0byBoYXMtdHJhbnNpdGlvbi1YIGNsYXNzIHRvIHByZXZlbnQgdHJhbnNpdGlvbiBmb3IgdHJhbnNmb3JtOm5vbmVcbiAgJi5oYXMtdHJhbnNpdGlvbi1vdmVybGFwLFxuICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gc2NvcGUgdW50aWwgdGhlIGVsZW1lbnQgaXMgY2xvc2VkIChtYWtlcyBzdXJlIHRyYW5zaXRpb25lbmQgZ2V0cyB0cmlnZ2VyZWQpXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cblxuICAvLyBDb25zaWRlciBlbGVtZW50ICYgY29udGVudCwgbmVzdGVkIGluIGFub3RoZXIgY29udGVudFxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3MsXG4kYnJlYWtwb2ludDogc21hbGxcbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIHJldmVhbGVkIGVsZW1lbnQgaXMgbmVzdGVkIGluIGNvbnRlbnRcbiAgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBAYXQtcm9vdCAuI3skY29udGVudH0uaGFzLXJldmVhbC0jeyRwb3NpdGlvbn0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChwcmlvciB0byB2Ni40KVxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cbn1cblxuLy8vIE92ZXJyaWRlcyB0aGUgb2ZmLWNhbnZhcyBzdHlsZXNcbkBtaXhpbiBpbi1jYW52YXMoKSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0cmFuc2l0aW9uOiBub25lO1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLnBvc2l0aW9uLWxlZnQsXG4gICYucG9zaXRpb24tcmlnaHQsXG4gICYucG9zaXRpb24tdG9wLFxuICAmLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcblxuICAgIC8vIEZvcmNlIHBvc2l0aW9uIGFic29sdXRlIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBiZWNhdXNlIGZpeGVkIGRvZXNuJ3Qgd29yayBmb3IgcHVzaCB0cmFuc2l0aW9uIHdpdGhpbiB0aGUgdHJhbnNmb3JtIHNjb3BlLlxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgICAvLyBOT1RFOiBzaW5jZSBvdmVybGFwIHRyYW5zaXRpb24gaXMgY3VycmVudGx5IGZvcmNlZCBpZiBuZXN0ZWQsIHRoZXJlJ3Mgbm8gbmVlZCB0byBmb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSB1bnRpbCBuZXN0ZWQgcHVzaCB0cmFuc2l0aW9uIGlzIHN1cHBvcnRlZC5cbiAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lciB3aXRoIGFic29sdXRlIHBvc2l0aW9uXG4gIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2UoJGZpeGVkOiBmYWxzZSk7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIHBvc2l0aW9uIGNsYXNzZXNcbiAgLnBvc2l0aW9uLWxlZnQgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQsICAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0LCAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXRvcCAgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHRvcCwgICAgdmVydGljYWwpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20gIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihib3R0b20sIHZlcnRpY2FsKTsgfVxuXG4gIC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtY29udGVudDtcbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIHBhbmVsIG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChib3R0b20sICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIGluLWNhbnZhcyBmb3IgbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBpbi1jYW52YXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cblxuLy8gUGxhY2Vob2xkZXIgc2VsZWN0b3IgZm9yIG1lZGl1bS1hbmQtdXAgbW9kYWxzXG4vLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG4vLyBUaGlzIHNob3VsZCBiZSBpbiB0aGUgc2FtZSBicmVha3BvaW50IHRoZW4gYEBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGhgXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAlcmV2ZWFsLWNlbnRlcmVkIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgLy8gV29ya2Fyb3VuZCBhbmRyb2lkIGJyb3dzZXIgei1pbmRleCBidWdcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRyZXZlYWwtcGFkZGluZztcblxuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1iYWNrZ3JvdW5kO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAuY29sdW1uIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICAvLyBFeHRlbmRzIG11c3QgYmUgbWFkZSBvdXRzaWRlIG9mIGJyZWFrcG9pbnRzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbmV3ZXIgU2FzcyB2ZXJzaW9ucyAobGlic2FzcyB2My41KVxuICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcblxuICAvLy8gRGlzYWJsZXMgdGhlIHNjcm9sbCB3aGVuIFJldmVhbCBpcyBzaG93biB0byBwcmV2ZW50IHRoZSBiYWNrZ3JvdW5kIGZyb20gc2hpZnRpbmdcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICYuemYtaGFzLXNjcm9sbCB7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgfVxuXG4gICAgYm9keSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC8vIE92ZXJsYXlcbiAgLnJldmVhbC1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxuICAucmV2ZWFsIHtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9wLWJhclxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHRvcCBiYXIgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xuXG4gICYsXG4gIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgZGlmZmVybnQgZnJvbSAkdG9wYmFyLWJhY2tncm91bmQtc3VibWVudVxuICBAaWYgKCR0b3BiYXItYmFja2dyb3VuZCAhPSAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZCkge1xuICAgIHVsIHVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RyYWluIHdpZHRoIG9mIGlucHV0cyBieSBkZWZhdWx0IHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8gYXJyYW5nZVxuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAkdG9wYmFyLWlucHV0LXdpZHRoO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICB9XG5cbiAgLy8gVGhlIGFib3ZlIHN0eWxlcyBzaG91bGRuJ3QgYXBwbHkgdG8gaW5wdXQgZ3JvdXAgZmllbGRzXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gIH1cblxuICBpbnB1dC5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gTWFrZXMgc2VjdGlvbnMgb2YgYSB0b3AgYmFyIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuQG1peGluIHRvcC1iYXItc3RhY2tlZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW5kb2VzIHRoZSBDU1MgYXBwbGllZCBieSB0aGUgYHRvcC1iYXItc3RhY2tlZCgpYCBtaXhpbi5cbkBtaXhpbiB0b3AtYmFyLXVuc3RhY2sge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuXG4gICAgICAubWVudS1pY29uIHtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBGbGV4Ym94IFV0aWxpdGllc1xuLy8vL1xuLy9cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgY291bnQgb2Ygc291cmNlIG9yZGVyaW5nYFxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xuXG4vLy8gUXVpY2tseSBkaXNhYmxlL2VuYWJsZSBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBWYW5pbGxhIEZsZXggSGVscGVycy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWp1c3RpZnkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdqdXN0aWZ5JywgJ3NwYWNlZCcpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgICYubWVudSA+IGxpID4gYSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXG4gIEBpbmNsdWRlIGZsZXgtaGVscGVycztcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtIC4wMDEyNTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtIC4wMDEyNTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbiAgLnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGVcbi8vLy9cblxuLy8gUmVsYXRpb25hbCBNaXhpbnNcbkBpbXBvcnQgJ3JlbGF0aW9uJztcblxuLy8gQm94IE1peGluXG5AaW1wb3J0ICdib3gnO1xuXG4vLyBSb3RhdGUgTWl4aW5cbkBpbXBvcnQgJ3JvdGF0ZSc7XG5cbi8vIFRleHQgdXRpbGl0aWVzXG5AaW1wb3J0ICd0ZXh0LXV0aWxpdGllcyc7XG5cbi8vIFRleHQgdHJhbnNmb3JtYXRpb24gY2xhc3Nlc1xuQGltcG9ydCAndGV4dC10cmFuc2Zvcm1hdGlvbic7XG5cbi8vIFRleHQgRGVjb3JhdGlvbiBjbGFzc2VzXG5AaW1wb3J0ICd0ZXh0LWRlY29yYXRpb24nO1xuXG4vLyBGb250IFN0eWxpbmdcbkBpbXBvcnQgJ2ZvbnQtc3R5bGluZyc7XG5cbi8vIExpc3QgU3R5bGUgdHlwZVxuQGltcG9ydCAnbGlzdC1zdHlsZS10eXBlJztcblxuLy8gUm91bmRlZCBVdGlsaXR5XG5AaW1wb3J0ICdyb3VuZGVkJztcblxuLy8gQm9yZGVyZWQgVXRpbGl0eVxuQGltcG9ydCAnYm9yZGVyZWQnO1xuXG4vLyBTaGFkb3cgVXRpbGl0eVxuQGltcG9ydCAnc2hhZG93JztcblxuLy8gQXJyb3cgVXRpbGl0eVxuQGltcG9ydCAnYXJyb3cnO1xuXG4vLyBTZXBhcmF0b3IgVXRpbGl0eVxuQGltcG9ydCAnc2VwYXJhdG9yJztcblxuLy8gT3ZlcmZsb3cgaGVscGVyIGNsYXNzZXNcbkBpbXBvcnQgJ292ZXJmbG93JztcblxuLy8gRGlzcGxheSBjbGFzc2VzXG5AaW1wb3J0ICdkaXNwbGF5JztcblxuLy8gUG9zaXRpb24gSGVscGVyc1xuQGltcG9ydCAncG9zaXRpb24nO1xuXG4vLyBCb3JkZXIgYm94XG5AaW1wb3J0ICdib3JkZXItYm94JztcblxuLy8gQm9yZGVyIG5vbmUgVXRpbHR5XG5AaW1wb3J0ICdib3JkZXItbm9uZSc7XG5cbi8vIFNpemluZyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3NpemluZyc7XG5cbi8vIFNwYWNpbmcgVXRpbGl0aWVzXG5AaW1wb3J0ICdzcGFjaW5nJztcblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LXV0aWxpdGllcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1mb250LXN0eWxpbmc7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNoYWRvdztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYXJyb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNlcGFyYXRvcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtb3ZlcmZsb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWRpc3BsYXk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXBvc2l0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItYm94O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItbm9uZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtc2l6aW5nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zcGFjaW5nO1xufVxuIiwiLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gZnJvbSB0aGUgZmlyc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRmlyc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gZmlyc3QoJG51bSkge1xuICBAaWYgJG51bSA9PSAxIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJjpudGgtY2hpbGQoLW4gKyAjeyRudW19KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgZmlyc3QgZXhhY3QgY2hpbGRcbkBtaXhpbiBmaXJzdC1jaGlsZCB7XG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gZnJvbSB0aGUgbGFzdCB0byBgJG51bWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBMYXN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGxhc3QoJG51bSkge1xuICAmOm50aC1sYXN0LWNoaWxkKC1uICsgI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGxhc3QgZXhhY3QgY2hpbGRcbkBtaXhpbiBsYXN0LWNoaWxkIHtcbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgY2hpbGRyZW4gZXZlcnkgYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRXZlcnkgYG5gIG51bWJlciBvZiBhbGwgY2hpbGRyZW5cbkBtaXhpbiBldmVyeSgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBvbmx5IHRoZSBmaXJzdCBhbmQgbGFzdCBjaGlsZC5cbkBtaXhpbiBmaXJzdC1sYXN0IHtcbiAgJjpmaXJzdC1jaGlsZCxcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBhZnRlciB0aGUgZmlyc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gQWZ0ZXIgRmlyc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gYWZ0ZXItZmlyc3QoJG51bSkge1xuICAmOm50aC1jaGlsZChuICsgI3skbnVtICsgMX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBiZWZvcmUgYCRudW1gIGZyb20gdGhlIGxhc3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBGcm9tIExhc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gZnJvbS1sYXN0KCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgYCRudW1gIGNoaWxkIGZyb20gdGhlIGZpcnN0IGFuZCB0aGUgYCRudW1gIGNoaWxkIGZyb20gdGhlIGxhc3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBgbmAgbnVtYmVyIGNhbGxlZCBmcm9tIGZpcnN0IGFuZCBsYXN0IFxuQG1peGluIGZyb20tZmlyc3QtbGFzdCgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX0pLFxuICAmOm50aC1sYXN0LWNoaWxkKCN7JG51bX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBidXQgYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIGFsbCBvdGhlciBjaGlsZHJlbiBcbkBtaXhpbiBhbGwtYnV0KCRudW0pIHtcbiAgJjpub3QoOm50aC1jaGlsZCgjeyRudW19KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGJldHdlZW4gdGhlIGAkbnVtYCBmaXJzdCBhbmQgdGhlIGAkbnVtYCBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciBleGNsdWRlZCBmcm9tIGZpcnN0IGFuZCBsYXN0IGZyb20gYWxsIG90aGVyIGNoaWxkcmVuXG5AbWl4aW4gYWxsLWJ1dC1maXJzdC1sYXN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bX0pOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgdGhlIGNoaWxkIGlmIGl0J3MgdW5pcXVlLiBUaGF0IG1lYW5zIHRoYXQgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IDIgY2hpbGRyZW4sIHRoZSBzdHlsZSB3aWxsIG5vdCBiZSBhcHBsaWVkLlxuQG1peGluIHVuaXF1ZSB7XG4gICY6b25seS1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgY2hpbGRyZW4gaWYgdGhleSBhcmUgbm90IHVuaXF1ZS4gVGhhdCBtZWFucyB0aGF0IGlmIHRoZXJlIGFyZSBhdCBsZWFzdCAyIGNoaWxkcmVuLCB0aGUgc3R5bGUgd2lsbCBiZSBhcHBsaWVkLlxuQG1peGluIG5vdC11bmlxdWUoKSB7XG4gICY6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBiZXR3ZWVuKCRmaXJzdCwgJGxhc3QpIHtcbiAgJjpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBldmVuIGNoaWxkcmVuLlxuQG1peGluIGV2ZW4ge1xuICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZmlyc3RbXSBGaXJzdCBgbnRoYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBudGhgIG51bWJlclxuQG1peGluIGV2ZW4tYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIG9kZCBjaGlsZHJlbi5cbkBtaXhpbiBvZGQge1xuICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBvZGQtYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKG9kZCk6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgYCRudW1gIGNoaWxkcmVuIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBFdmVyeSBgbmAgbnVtYmVyIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmaXJzdFtdIEZpcnN0IGBuYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBuYCBudW1iZXJcbkBtaXhpbiBudW1iZXItYmV0d2VlbigkbnVtLCAkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3hcbi8vLy9cblxuLy8vIEJveCBNaXhpbjogRWFzaWx5IGNyZWF0ZSBhIHNxdWFyZSwgcmVjdGFuZ2xlIG9yIGEgY2lyY2xlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aFtdIFdpZHRoIG9mIHRoZSBib3hcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodFskd2lkdGhdIEhlaWdodCBvZiB0aGUgYm94LCBkZWZhdWx0cyB0byBgJHdpZHRoYCB0byBlYXNpbHkgbWFrZSBhIHNxdWFyZVxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNpcmNsZVtmYWxzZV0gTWFrZXMgdGhlIGJveCBhIGNpcmNsZSwgYnkgZGVmYXVsdCBgZmFsc2VgLlxuQG1peGluIGJveChcbiAgJHdpZHRoLCBcbiAgJGhlaWdodDogJHdpZHRoLCBcbiAgJGNpcmNsZTogZmFsc2Vcbikge1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIEBpZiAkY2lyY2xlIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1yb3RhdGVcbi8vLy9cblxuLy8vIFJvdGF0ZSBNaXhpbjogUm90YXRlIGFuIGVsZW1lbnQgdG8gYSBjZXJ0YWluIGRlZ1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGVnW10gRGVncmVlIG9mIHJvdGF0aW9uXG5AbWl4aW4gcm90YXRlKCRkZWcpIHtcblx0dHJhbnNmb3JtOnJvdGF0ZSgkZGVnICsgZGVnKTtcbn1cblxuLy8vIFJvdGF0ZVggTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWcgb24gWC1BeGlzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkZWdbXSBEZWdyZWUgb2Ygcm90YXRpb25cbkBtaXhpbiByb3RhdGVYKCRkZWcpIHtcblx0dHJhbnNmb3JtOnJvdGF0ZVgoJGRlZyArIGRlZyk7XG59XG5cbi8vLyBSb3RhdGVZIE1peGluOiBSb3RhdGUgYW4gZWxlbWVudCB0byBhIGNlcnRhaW4gZGVnIG9uIFktQXhpc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGVnW10gRGVncmVlIG9mIHJvdGF0aW9uXG5AbWl4aW4gcm90YXRlWSgkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGVZKCRkZWcgKyBkZWcpO1xufVxuXG4vLy8gUm90YXRlWiBNaXhpbjogUm90YXRlIGFuIGVsZW1lbnQgdG8gYSBjZXJ0YWluIGRlZyBvbiBaLUF4aXNcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZVooJGRlZykge1xuXHR0cmFuc2Zvcm06cm90YXRlWigkZGVnICsgZGVnKTtcbn0iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtdXRpbGl0aWVzXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IHV0aWxpdGllc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgVmFsdWUgZm9yIGB0ZXh0LW92ZXJmbG93YCB2YXJpYWJsZVxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhZGVmYXVsdDtcblxuLy8vIEltYWdlIFJlcGxhY2VtZW50IHV0aWxpdHkuIGB0ZXh0LWhpZGVgXG5AbWl4aW4gdGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGEgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xufVxuXG4vLy8gVHJ1bmNhdGluZyB0aGUgdGV4dCwgZWxpcHNpcyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgWyRwcm90b3R5cGUtdGV4dC1vdmVyZmxvd10gVGV4dCBUcnVuY2F0ZVxuQG1peGluIHRleHQtdHJ1bmNhdGUoXG4gICRvdmVyZmxvdzogJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93XG4pIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgdGV4dC1vdmVyZmxvdzogJG92ZXJmbG93OyBcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4vLy8gTm8gd3JhcHBpbmcgb2YgdGhlIHRleHQuIGB0ZXh0LW5vd3JhcGBcbkBtaXhpbiB0ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLy8vIFdyYXBwaW5nIG9mIHRoZSB0ZXh0LiBgdGV4dC13cmFwYFxuQG1peGluIHRleHQtd3JhcCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC11dGlsaXRpZXMge1xuICAudGV4dC1oaWRlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LWhpZGU7XG4gIH1cblxuICAudGV4dC10cnVuY2F0ZSB7XG4gICAgQGluY2x1ZGUgdGV4dC10cnVuY2F0ZTtcbiAgfVxuXG4gIC50ZXh0LW5vd3JhcCB7XG4gICAgQGluY2x1ZGUgdGV4dC1ub3dyYXA7XG4gIH1cblxuICAudGV4dC13cmFwIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXdyYXA7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC1oaWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtaGlkZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC10cnVuY2F0ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LW5vd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LW5vd3JhcDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtd3JhcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCB0cmFuc2Zvcm1hdGlvbiBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGB0ZXh0LXRyYW5zZm9ybWF0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChcbiAgbG93ZXJjYXNlLFxuICB1cHBlcmNhc2UsXG4gIGNhcGl0YWxpemVcbikgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IFRyYW5zZm9ybWF0aW9uLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb25gXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0cmFuc2Zvcm1hdGlvbiBbXSBUZXh0IFRyYW5zZm9ybWF0aW9uXG5AbWl4aW4gdGV4dC10cmFuc2Zvcm0oJHRyYW5zZm9ybWF0aW9uKSB7XG4gIHRleHQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtYXRpb24gIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb24ge1xuICBAZWFjaCAkdHJhbnNmb3JtYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uIHtcbiAgICAudGV4dC0jeyR0cmFuc2Zvcm1hdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgdGV4dC10cmFuc2Zvcm0oJHRyYW5zZm9ybWF0aW9uKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICBcdEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkdHJhbnNmb3JtYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skdHJhbnNmb3JtYXRpb259IHtcbiAgXHRcdFx0ICAgICAgQGluY2x1ZGUgdGV4dC10cmFuc2Zvcm0oJHRyYW5zZm9ybWF0aW9uKTtcbiAgXHRcdFx0ICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IGRlY29yYXRpb24gY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGB0ZXh0LWRlY29yYXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uOiAoXG4gIG92ZXJsaW5lLFxuICB1bmRlcmxpbmUsXG4gIGxpbmUtdGhyb3VnaCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IERlY29yYXRpb24sIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVjb3JhdGlvbiBbXSBUZXh0IERlY29yYXRpb25cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiAkZGVjb3JhdGlvbiAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgQGVhY2ggJGRlY29yYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICAgIC50ZXh0LSN7JGRlY29yYXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkZGVjb3JhdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGRlY29yYXRpb259IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtZm9udC1zdHlsaW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBmb250IHN0eWxpbmcgdHlwZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTGV0dGVyIHNwYWNpbmcgZm9yIGAuZm9udC13aWRlYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nOiByZW0tY2FsYyg0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2VpZ2h0IGZvciBgLmZvbnQtbm9ybWFsYCwgZGVmYXVsdGVkIHRvIGBnbG9iYWwtd2VpZ2h0LW5vcm1hbGBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2VpZ2h0IGZvciBgLmZvbnQtYm9sZGAsIGRlZmF1bHRlZCB0byBgZ2xvYmFsLXdlaWdodC1ib2xkYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdpZGUgbGV0dGVyIHNwYWNpbmchXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZXR0ZXItc3BhY2luZyBbJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nXSBXaWRlIGxldHRlciBzcGFjaW5nIGZvciB0aGUgZm9udFxuQG1peGluIGZvbnQtd2lkZShcbiAgJGxldHRlci1zcGFjaW5nOiAkcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmdcbikge1xuICBsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nO1xufVxuXG4vLy8gRm9udCBXZWlnaHQgTm9ybWFsLCBkZWZhdWx0IHZhbHVlIGNvbWluZyB0aHJvdWdoIGBnbG9iYWwtd2VpZ2h0LW5vcm1hbGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbJHByb3RvdHlwZS1mb250LW5vcm1hbF0gV2VpZ2h0IG9mIHRoZSBmb250IChub3JtYWwpXG5AbWl4aW4gZm9udC1ub3JtYWwoXG4gICR3ZWlnaHQ6ICRwcm90b3R5cGUtZm9udC1ub3JtYWxcbikge1xuICBmb250LXdlaWdodDogJHdlaWdodDtcbn1cblxuLy8vIEZvbnQgV2VpZ2h0IEJvbGQsIGRlZmF1bHQgdmFsdWUgY29taW5nIHRocm91Z2ggYGdsb2JhbC13ZWlnaHQtYm9sZGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbJHByb3RvdHlwZS1mb250LWJvbGRdIFdlaWdodCBvZiB0aGUgZm9udCAoYm9sZClcbkBtaXhpbiBmb250LWJvbGQoXG4gICR3ZWlnaHQ6ICRwcm90b3R5cGUtZm9udC1ib2xkXG4pIHtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG59XG5cbi8vLyBGb250IFN0eWxlIEl0YWxpY1xuQG1peGluIGZvbnQtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1mb250LXN0eWxpbmcge1xuICAuZm9udC13aWRle1xuICAgIEBpbmNsdWRlIGZvbnQtd2lkZTtcbiAgfVxuXG4gIC5mb250LW5vcm1hbCB7XG4gICAgQGluY2x1ZGUgZm9udC1ub3JtYWw7XG4gIH1cblxuICAuZm9udC1ib2xkIHtcbiAgICBAaW5jbHVkZSBmb250LWJvbGQ7XG4gIH1cblxuICAuZm9udC1pdGFsaWMge1xuICAgIEBpbmNsdWRlIGZvbnQtaXRhbGljO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1mb250LXdpZGV7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXdpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtbm9ybWFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtbm9ybWFsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1ib2xkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWl0YWxpYyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LWl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtbGlzdC1zdHlsZS10eXBlXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBsaXN0IHN0eWxpbmcgdHlwZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc3R5bGUtdHlwZS11bm9yZGVyZWRgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQ6IChcbiAgZGlzYyxcbiAgY2lyY2xlLFxuICBzcXVhcmVcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzdHlsZS10eXBlLW9yZGVyZWRgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkOiAoXG4gIGRlY2ltYWwsXG4gIGxvd2VyLWFscGhhLFxuICBsb3dlci1sYXRpbixcbiAgbG93ZXItcm9tYW4sXG4gIHVwcGVyLWFscGhhLFxuICB1cHBlci1sYXRpbixcbiAgdXBwZXItcm9tYW5cbikgIWRlZmF1bHQ7XG5cblxuLy8vIFN0eWxlIHR5cGUgZm9yIHVub3JkZXJlZCBMaXN0cywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZGBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0eWxlLXR5cGUtdW5vcmRlcmVkIFtdIFN0eWxlIHR5cGUgZm9yIHVub3JkZXJlZCBMaXN0c1xuQG1peGluIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCkge1xuICBsaXN0LXN0eWxlLXR5cGU6ICRzdHlsZS10eXBlLXVub3JkZXJlZCAhaW1wb3J0YW50O1xufVxuXG4vLy8gU3R5bGUgdHlwZSBmb3Igb3JkZXJlZCBMaXN0cywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWRgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHlsZS10eXBlLW9yZGVyZWQgW10gU3R5bGUgdHlwZSBmb3Igb3JkZXJlZCBMaXN0c1xuQG1peGluIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogJHN0eWxlLXR5cGUtb3JkZXJlZCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gbGlzdC11bm9yZGVyZWQge1xuICBAZWFjaCAkc3R5bGUtdHlwZS11bm9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZCB7XG4gICAgdWwubGlzdC0jeyRzdHlsZS10eXBlLXVub3JkZXJlZH0ge1xuICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRzdHlsZS10eXBlLXVub3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgdWwuI3skc2l6ZX0tbGlzdC0jeyRzdHlsZS10eXBlLXVub3JkZXJlZH0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbGlzdC1vcmRlcmVkIHtcbiAgQGVhY2ggJHN0eWxlLXR5cGUtb3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZCB7XG4gICAgb2wubGlzdC0jeyRzdHlsZS10eXBlLW9yZGVyZWR9IHtcbiAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRzdHlsZS10eXBlLW9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBvbC4jeyRzaXplfS1saXN0LSN7JHN0eWxlLXR5cGUtb3JkZXJlZH0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGUge1xuICBAaW5jbHVkZSBsaXN0LXVub3JkZXJlZDtcbiAgQGluY2x1ZGUgbGlzdC1vcmRlcmVkO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1yb3VuZGVkXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciByb3VuZGVkIHV0aWxpdHkuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm9yZGVyLXJhZGl1c2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMykgIWRlZmF1bHQ7XG5cbi8vLyBSb3VuZGVkIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogQWRkcyByYWRpdXMgY29ybmVycyAoYWxsIGNvcm5lcnMpIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGl1cyBbJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXSBCb3JkZXIgcmFkaXVzIChhbGwgY29ybmVycylcbkBtaXhpbiBib3JkZXItcmFkaXVzKFxuICAkcmFkaXVzOiAkcHJvdG90eXBlLWJvcmRlci1yYWRpdXNcbikge1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vLy8gUm91bmRlZCBzcXVhcmUgdXRpbGl0eSBvciByZWN0YW5nbGUgdXRpbGl0eSAoYWxsIGNvcm5lcnMpOiBSb3VuZHMgYWxsIGNvcm5lcnMgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0IHRvIG1ha2UgYSBwaWxsIHNoYXBlLlxuQG1peGluIGJvcmRlci1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogNTAwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1yb3VuZGVkIHtcbiAgLnJvdW5kZWQge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yb3VuZGVkO1xuXG4gICAgLnN3aXRjaC1wYWRkbGUge1xuICAgICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyAvLyBGb3Igc3dpdGNoZXNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucmFkaXVzIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1yb3VuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yb3VuZGVkO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tcmFkaXVzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlcmVkXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXJlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtYm9yZGVyZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItd2lkdGhgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci10eXBlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1jb2xvcmAgZGVmYXVsdGVkIHRvIGBtZWRpdW0tZ3JheWBcbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlcmVkIFV0aWxpdHk6IEFkZHMgYSBsaWdodCBib3JkZXIgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtYm9yZGVyLXdpZHRoXSBXaWR0aCBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0eXBlIFskcHJvdG90eXBlLWJvcmRlci10eXBlXSBUeXBlIG9mIHRoZSBib3JkZXJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRwcm90b3R5cGUtYm9yZGVyLWNvbG9yXSBDb2xvciBvZiB0aGUgYm9yZGVyXG5AbWl4aW4gYm9yZGVyZWQoXG4gICR3aWR0aDogJHByb3RvdHlwZS1ib3JkZXItd2lkdGgsXG4gICR0eXBlOiAkcHJvdG90eXBlLWJvcmRlci10eXBlLFxuICAkY29sb3I6ICRwcm90b3R5cGUtYm9yZGVyLWNvbG9yXG4pIHtcbiAgYm9yZGVyOiAkd2lkdGggJHR5cGUgJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyZWQge1xuICAuYm9yZGVyZWQge1xuICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNoYWRvd1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2hhZG93IHV0aWxpdHkuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3gtc2hhZG93YFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMikgIWRlZmF1bHQ7XG5cbi8vLyBTaGFkb3cgVXRpbGl0eTogQWRkcyBhIGxpZ2h0IGJveCBzaGFkb3cgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2hhZG93IFskcHJvdG90eXBlLWJveC1zaGFkb3ddIEJveCBTaGFkb3cgb2YgYSBjb21wb25lbnRcbkBtaXhpbiBzaGFkb3coXG4gICRzaGFkb3c6ICRwcm90b3R5cGUtYm94LXNoYWRvd1xuKSB7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaGFkb3cge1xuICAuc2hhZG93IHtcbiAgICBAaW5jbHVkZSBzaGFkb3c7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tc2hhZG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNoYWRvdztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtYXJyb3dcbi8vLy9cblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYGFycm93YCBkaXJlY3Rpb25cbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxuICBkb3duLFxuICB1cCxcbiAgcmlnaHQsXG4gIGxlZnRcbikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiB0aGUgQXJyb3csIGAwLjQzNzVyZW1gIGJ5IGRlZmF1bHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcblxuLy8vIENvbG9yIG9mIHRoZSBBcnJvdywgYCRibGFja2AgYnkgZGVmYXVsdC5cbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1hcnJvdy1jb2xvcjogJGJsYWNrO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYXJyb3cge1xuICBAZWFjaCAkcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbiBpbiAkcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnMge1xuICAgIC5hcnJvdy0jeyRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9ufSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoXG4gICAgICAgICRwcm90b3R5cGUtYXJyb3ctc2l6ZSwgXG4gICAgICAgICRwcm90b3R5cGUtYXJyb3ctY29sb3IsIFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LWRpcmVjdGlvblxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc2VwYXJhdG9yXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBhbGlnbm1lbnQgb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0OiByZW0tY2FsYygyKSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRvcCBNYXJnaW4gb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRpdGxlIHNlcGFyYXRvciBVdGlsaXR5LCBtb3N0bHkgdXNlZCB0byBzdHlsZSB0aGUgbWFpbiBoZWFkaW5nIG9mIGEgc2VjdGlvblxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYWxpZ24gWyRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduXSAtIHNlcGFyYXRvciBBbGlnbm1lbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0XSAtIFdpZHRoXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGhdIC0gSGVpZ2h0XG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFskcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wXSAtIE1hcmdpbiBUb3BcbkBtaXhpbiBzZXBhcmF0b3IgKFxuICAkYWxpZ246ICRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduLFxuICAkaGVpZ2h0OiAkcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQsXG4gICR3aWR0aDogJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGgsXG4gICRiYWNrZ3JvdW5kOiAkcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kLFxuICAkdG9wOiAkcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wXG4pIHtcbiAgdGV4dC1hbGlnbjogJGFsaWduICFpbXBvcnRhbnQ7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSk7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIG1hcmdpbjogJHRvcCBhdXRvIDA7XG5cbiAgICBAaWYgJGFsaWduID09IGxlZnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaWYgJGFsaWduID09IHJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtc2VwYXJhdG9yIHtcblx0LnNlcGFyYXRvci1jZW50ZXIge1xuXHRcdEBpbmNsdWRlIHNlcGFyYXRvcihjZW50ZXIpO1xuXHR9XG5cbiAgLnNlcGFyYXRvci1sZWZ0IHtcbiAgICBAaW5jbHVkZSBzZXBhcmF0b3IobGVmdCk7XG4gIH1cblxuICAuc2VwYXJhdG9yLXJpZ2h0IHtcbiAgICBAaW5jbHVkZSBzZXBhcmF0b3IocmlnaHQpO1xuICB9XG5cblx0QGlmICgkcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXNlcGFyYXRvci1jZW50ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKGNlbnRlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItbGVmdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzZXBhcmF0b3IobGVmdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItcmlnaHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKHJpZ2h0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtb3ZlcmZsb3dcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIG92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBvdmVyZmxvd2AgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKSAhZGVmYXVsdDtcblxuLy8vIE92ZXJmbG93IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzXG5AbWl4aW4gb3ZlcmZsb3coJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuLy8vIE92ZXJmbG93IGNsYXNzZXMgb24gaG9yaXpvbnRhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAoaG9yaXpvbnRhbCBheGlzKVxuQG1peGluIG92ZXJmbG93LXgoJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93LXg6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiB2ZXJ0aWNhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAodmVydGljYWwgYXhpcylcbkBtaXhpbiBvdmVyZmxvdy15KCRvdmVyZmxvdykge1xuICBvdmVyZmxvdy15OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgQGVhY2ggJG92ZXJmbG93IGluICRwcm90b3R5cGUtb3ZlcmZsb3cge1xuICAgIC5vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3coJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXgoJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXkoJG92ZXJmbG93KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkb3ZlcmZsb3cgaW4gJHByb3RvdHlwZS1vdmVyZmxvdyB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdygkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteCgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteSgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1kaXNwbGF5XG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBkaXNwbGF5IGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgZGlzcGxheWAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1kaXNwbGF5OiAoXG4gIGlubGluZSxcbiAgaW5saW5lLWJsb2NrLFxuICBibG9jayxcbiAgdGFibGUsXG4gIHRhYmxlLWNlbGxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEaXNwbGF5IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtZGlzcGxheWBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW10gRGlzcGxheSBjbGFzc2VzXG5AbWl4aW4gZGlzcGxheSgkZGlzcGxheSkge1xuICBkaXNwbGF5OiAkZGlzcGxheSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtZGlzcGxheSB7XG4gIEBlYWNoICRkaXNwbGF5IGluICRwcm90b3R5cGUtZGlzcGxheSB7XG4gICAgLmRpc3BsYXktI3skZGlzcGxheX0ge1xuICAgICAgQGluY2x1ZGUgZGlzcGxheSgkZGlzcGxheSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWRpc3BsYXktYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkZGlzcGxheSBpbiAkcHJvdG90eXBlLWRpc3BsYXkge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tZGlzcGxheS0jeyRkaXNwbGF5fSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGRpc3BsYXkoJGRpc3BsYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1wb3NpdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcG9zaXRpb24gaGVscGVyc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgcG9zaXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtcG9zaXRpb246IChcbiAgc3RhdGljLFxuICByZWxhdGl2ZSxcbiAgYWJzb2x1dGUsXG4gIGZpeGVkXG4pICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgZml4ZWQgcG9zaXRpb25pbmdcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1ICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb24gY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1wb3NpdGlvbmAsIHdoZXJlYXMgYWxsIHRoZSBvZmZzZXQgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLXBvc2l0aW9uYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHBvc2l0aW9uIFtdIFBvc2l0aW9uIGNsYXNzZXMsIEVpdGhlciBgc3RhdGljYCwgYHJlbGF0aXZlYCwgYGFic29sdXRlYCBvciBgZml4ZWRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gVG9wIG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gUmlnaHQgb2Zmc2V0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gQm90dG9tIG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBMZWZ0IG9mZnNldFxuQG1peGluIHBvc2l0aW9uKFxuICAkcG9zaXRpb24sXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBwb3NpdGlvbjogJHBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIHRvcDogJHRvcCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG51bGwge1xuICAgIHJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgYm90dG9tOiAkYm90dG9tICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBsZWZ0OiAkbGVmdCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gUG9zaXRpb24gRml4ZWQgb24gdG9wIGNvcm5lcnNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWyRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleF0gei1pbmRleCBmb3IgYHBvc2l0aW9uLWZpeGVkLXRvcGBcbkBtaXhpbiBwb3NpdGlvbi1maXhlZC10b3AoXG4gICR6LWluZGV4OiAkcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhcbikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCwgMCwgbnVsbCwgMCk7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG4vLy8gUG9zaXRpb24gRml4ZWQgb24gYm90dG9tIGNvcm5lcnNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWyRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleF0gei1pbmRleCBmb3IgYHBvc2l0aW9uLWZpeGVkLWJvdHRvbWBcbkBtaXhpbiBwb3NpdGlvbi1maXhlZC1ib3R0b20oXG4gICR6LWluZGV4OiAkcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhcbikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgbnVsbCwgMCwgMCwgMCk7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcG9zaXRpb24ge1xuICAvLyBQb3NpdGlvbjogU3RhdGljLCBSZWxhdGl2ZSwgRml4ZWQsIEFic29sdXRlXG4gIEBlYWNoICRwb3NpdGlvbiBpbiAkcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgICAucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCRwb3NpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8gUG9zaXRpb246IEZpeGVkIFRvcCwgRml4ZWQgQm90dG9tXG4gIC5wb3NpdGlvbi1maXhlZC10b3Age1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLXRvcDtcbiAgfVxuICAucG9zaXRpb24tZml4ZWQtYm90dG9tIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC1ib3R0b207XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAvLyBQb3NpdGlvbjogU3RhdGljLCBSZWxhdGl2ZSwgRml4ZWQsIEFic29sdXRlXG4gICAgICAgIEBlYWNoICRwb3NpdGlvbiBpbiAkcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCRwb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUG9zaXRpb246IEZpeGVkIFRvcCwgRml4ZWQgQm90dG9tXG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLWZpeGVkLXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC10b3A7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLWZpeGVkLWJvdHRvbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC1ib3R0b207XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlci1ib3hcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGJvcmRlciBib3guXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBib3ggdXRpbGl0eVxuQG1peGluIGJvcmRlci1ib3gge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItYm94IHtcbiAgLmJvcmRlci1ib3gge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3g7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlci1ib3gge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJveDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtYm9yZGVyLW5vbmVcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGJvcmRlciBub25lLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtYm9yZGVyLW5vbmUtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIG5vbmUgdXRpbGl0eVxuQG1peGluIGJvcmRlci1ub25lIHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItbm9uZSB7XG4gIC5ib3JkZXItbm9uZSB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLW5vbmU7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtYm9yZGVyLW5vbmUtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1ib3JkZXItbm9uZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc2l6aW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzcGFjaW5nIGNsYXNzZXMgKG1hcmdpbiBhbmQgcGFkZGluZylcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzaXppbmdgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc2l6aW5nOiAoXG4gIHdpZHRoLFxuICBoZWlnaHRcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIHNpemVzLlxuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXggV2lkdGggMTAwIHV0aWxpdHkuXG5AbWl4aW4gbWF4LXdpZHRoLTEwMCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4vLy8gTWF4IEhlaWdodCAxMDAgdXRpbGl0eS5cbkBtaXhpbiBtYXgtaGVpZ2h0LTEwMCB7XG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNpemluZyB7XG4gIC8vIEVsZW1lbnQgU2l6aW5nXG4gIEBlYWNoICRzaXppbmcgaW4gJHByb3RvdHlwZS1zaXppbmcge1xuICAgIEBlYWNoICRsZW5ndGgsICRwZXJjZW50YWdlIGluICRwcm90b3R5cGUtc2l6ZXMge1xuICAgICAgLiN7JHNpemluZ30tI3skbGVuZ3RofSB7XG4gICAgICAgICN7JHNpemluZ306ICRwZXJjZW50YWdlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTWF4IHdpZHRoICYgaGVpZ2h0XG4gIC5tYXgtd2lkdGgtMTAwIHtcbiAgICBAaW5jbHVkZSBtYXgtd2lkdGgtMTAwO1xuICB9XG4gIC5tYXgtaGVpZ2h0LTEwMCB7XG4gICAgQGluY2x1ZGUgbWF4LWhlaWdodC0xMDA7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAZWFjaCAkc2l6aW5nIGluICRwcm90b3R5cGUtc2l6aW5nIHtcbiAgICAgICAgICAgIEBlYWNoICRsZW5ndGgsICRwZXJjZW50YWdlIGluICRwcm90b3R5cGUtc2l6ZXMge1xuICAgICAgICAgICAgICAuI3skc2l6ZX0tI3skc2l6aW5nfS0jeyRsZW5ndGh9IHtcbiAgICAgICAgICAgICAgICAjeyRzaXppbmd9OiAkcGVyY2VudGFnZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNwYWNpbmdcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHNwYWNpbmcgY2xhc3NlcyAobWFyZ2luIGFuZCBwYWRkaW5nKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG51bWJlciBvZiBzcGFjZXJzIGNvdW50IChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDMgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gaGVscGVyIG1peGluLCBhbGwgdGhlIHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1tYXJnaW5gIHdoaWNoIGJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gYDFyZW1gXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gTWFyZ2luIFRvcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gTWFyZ2luIFJpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gTWFyZ2luIEJvdHRvbVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBNYXJnaW4gTGVmdFxuQG1peGluIG1hcmdpbihcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIG1hcmdpbi10b3A6ICR0b3AgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBtYXJnaW4tbGVmdDogJGxlZnQgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBQYWRkaW5nIGhlbHBlciBtaXhpbiwgYWxsIHRoZSB2YWx1ZXMgYXJlIG11bHRpcGxpZWQgYnkgYCRnbG9iYWwtcGFkZGluZ2Agd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBQYWRkaW5nIFRvcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gUGFkZGluZyBSaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIFBhZGRpbmcgQm90dG9tXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIFBhZGRpbmcgTGVmdFxuQG1peGluIHBhZGRpbmcoXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLXRvcDogJHRvcCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgcGFkZGluZy1yaWdodDogJHJpZ2h0ICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAkbGVmdCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBNYXJnaW4gY2xhc3NlcyBmb3Igc3BlY2lmaWMgZGlyZWN0aW9uIHByb3BlcnRpZXNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpciBbXSBEaXJlY3Rpb25cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNlciBbXSBTcGFjZXJcbkBtaXhpbiBtYXJnaW4tZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpIHtcbiAgQGlmICgkZGlyID09IHRvcCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHRvcDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHJpZ2h0KSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkcmlnaHQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBib3R0b20pIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCRib3R0b206ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSBsZWZ0KSB7IFxuICAgIEBpbmNsdWRlIG1hcmdpbigkbGVmdDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGhvcml6b250YWwpIHsgXG4gICAgQGluY2x1ZGUgbWFyZ2luKCRyaWdodDogJHNwYWNlciwgJGxlZnQ6ICRzcGFjZXIpOyBcbiAgfVxuICBAZWxzZSBpZiAoJGRpciA9PSB2ZXJ0aWNhbCkgeyBcbiAgICBAaW5jbHVkZSBtYXJnaW4oJHRvcDogJHNwYWNlciwgJGJvdHRvbTogJHNwYWNlcik7IFxuICB9XG59XG5cbi8vLyBQYWRkaW5nIGNsYXNzZXMgZm9yIHNwZWNpZmljIGRpcmVjdGlvbiBwcm9wZXJ0aWVzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXIgW10gRGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjZXIgW10gU3BhY2VyXG5AbWl4aW4gcGFkZGluZy1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcikge1xuICBAaWYgKCRkaXIgPT0gdG9wKSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJHRvcDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IHJpZ2h0KSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJHJpZ2h0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gYm90dG9tKSB7IFxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJGJvdHRvbTogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGxlZnQpIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkbGVmdDogJHNwYWNlcik7IFxuICB9XG4gIEBlbHNlIGlmICgkZGlyID09IGhvcml6b250YWwpIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkcmlnaHQ6ICRzcGFjZXIsICRsZWZ0OiAkc3BhY2VyKTsgXG4gIH1cbiAgQGVsc2UgaWYgKCRkaXIgPT0gdmVydGljYWwpIHsgXG4gICAgQGluY2x1ZGUgcGFkZGluZygkdG9wOiAkc3BhY2VyLCAkYm90dG9tOiAkc3BhY2VyKTsgXG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNwYWNpbmcge1xuICBAZm9yICRzcGFjZXIgZnJvbSAwIHRocm91Z2ggJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50IHtcbiAgICBcbiAgICBAZWFjaCAkcHJvcCBpbiAobWFyZ2luLCBwYWRkaW5nKSB7XG4gICAgICAvLyBBbGwgU2lkZXNcbiAgICAgIC4jeyRwcm9wfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgQGlmICgkcHJvcCA9PSBtYXJnaW4pIHsgXG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2VyICogJGdsb2JhbC1tYXJnaW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSBpZiAoJHByb3AgPT0gcGFkZGluZykgeyBcbiAgICAgICAgICBwYWRkaW5nOiAkc3BhY2VyICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGVhY2ggJGRpciBpbiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBob3Jpem9udGFsLCB2ZXJ0aWNhbCkge1xuICAgICAgICAvLyBUb3AgU2lkZVxuICAgICAgICAuI3skcHJvcH0tI3skZGlyfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICBAaWYgKCRwcm9wID09IG1hcmdpbikgeyBcbiAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbi1kaXJlY3Rpb24oJGRpciwgJHNwYWNlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIGlmICgkcHJvcCA9PSBwYWRkaW5nKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nLWRpcmVjdGlvbigkZGlyLCAkc3BhY2VyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50cykge1xuICAgIEBmb3IgJHNwYWNlciBmcm9tIDAgdGhyb3VnaCAkcHJvdG90eXBlLXNwYWNlcnMtY291bnQge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0ge1xuICAgICAgICAgICAgICBAZWFjaCAkcHJvcCBpbiAobWFyZ2luLCBwYWRkaW5nKSB7XG4gICAgICAgICAgICAgICAgLy8gQWxsIFNpZGVzXG4gICAgICAgICAgICAgICAgJi0jeyRwcm9wfS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgICAgIEBpZiAoJHByb3AgPT0gbWFyZ2luKSB7IFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICRzcGFjZXIgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9wID09IHBhZGRpbmcpIHsgXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRzcGFjZXIgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWFjaCAkZGlyIGluICh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIGhvcml6b250YWwsIHZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgICAvLyBUb3AgU2lkZVxuICAgICAgICAgICAgICAgICAgJi0jeyRwcm9wfS0jeyRkaXJ9LSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRwcm9wID09IG1hcmdpbikgeyBcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4tZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIGlmICgkcHJvcCA9PSBwYWRkaW5nKSB7IFxuICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmctZGlyZWN0aW9uKCRkaXIsICRzcGFjZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiYmFzZS9iYXNlXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL19pbmRleFwiOyIsIkBpbXBvcnQgXCJtaXhpbnNcIjtcclxuQGltcG9ydCBcImFwcC1taXhpbnNcIjtcclxuQGltcG9ydCBcInJlc2V0XCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzXCI7XHJcbkBpbXBvcnQgXCJzZXR0aW5nc1wiO1xyXG5AaW1wb3J0IFwiZm9udGZhY2VcIjtcclxuIiwiQG1peGluIGJsb2NrKCR3aWR0aCwkaGVpZ2h0OjAsJGRzcDonJyl7XHJcbiAgd2lkdGg6JHdpZHRoO1xyXG4gIEBpZiAkaGVpZ2h0PT0wIHtcclxuICAgIGhlaWdodDogJHdpZHRoO1xyXG4gIH1AZWxzZXtcclxuICAgIGhlaWdodDokaGVpZ2h0XHJcbiAgfVxyXG4gIEBpZigkZHNwIT0nJyl7XHJcbiAgICBkaXNwbGF5OiB1bnF1b3RlKCRkc3ApO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGJveC1zaXppbmcoJHZhbHVlKXtcclxuICBib3gtc2l6aW5nOiAkdmFsdWU7XHJcbiAgLW1vei1ib3gtc2l6aW5nOiAkdmFsdWU7XHJcbn1cclxuXHJcbkBtaXhpbiBjaXJjbGUoJHdpZHRoLCRkaXNwbGF5OmJsb2NrKXtcclxuICB3aWR0aDogJHdpZHRoOyBoZWlnaHQ6ICR3aWR0aDtcclxuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDUwJSk7XHJcbiAgZGlzcGxheTokZGlzcGxheTtcclxufVxyXG5cclxuXHJcbkBtaXhpbiBmb3JtLXBsYWNlaG9sZXIoKXtcclxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgLyogV2ViS2l0IGJyb3dzZXJzICovXHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbiAgJjotbW96LXBsYWNlaG9sZGVyIHsgLyogTW96aWxsYSBGaXJlZm94IDQgdG8gMTggKi9cclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuICAmOjotbW96LXBsYWNlaG9sZGVyIHsgLyogTW96aWxsYSBGaXJlZm94IDE5KyAqL1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgLyogSW50ZXJuZXQgRXhwbG9yZXIgMTArICovXHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gZGJvcmRlcigkY29sb3IxLCRjb2xvcjIpe1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjE7XHJcbiAgb3V0bGluZTogMXB4IHNvbGlkICRjb2xvcjI7XHJcbn1cclxuXHJcblxyXG5cclxuQG1peGluIHRleHQoJHM6JycsJHc6JycsJHQ6JycsJGQ6JycsJHNsOicnLCRhOicnLCRsczonJyl7XHJcbiAgQGlmICRzIT0nJ3tcclxuICAgIGZvbnQtc2l6ZTp1bnF1b3RlKCRzKTtcclxuICB9XHJcbiAgQGlmICRzbCE9Jyd7XHJcbiAgICBmb250LXN0eWxlOnVucXVvdGUoJHNsKTtcclxuICB9XHJcbiAgQGlmICR3IT0nJ3tcclxuICAgIGZvbnQtd2VpZ2h0OnVucXVvdGUoJHcpO1xyXG4gIH1cclxuICBAaWYgJHQhPScne1xyXG4gICAgdGV4dC10cmFuc2Zvcm06dW5xdW90ZSgkdCk7XHJcbiAgfVxyXG4gIEBpZiAkZCE9Jyd7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246dW5xdW90ZSgkZCk7XHJcbiAgfVxyXG4gIEBpZiAkYSE9Jyd7XHJcbiAgICB0ZXh0LWFsaWduOnVucXVvdGUoJGEpO1xyXG4gIH1cclxuICBAaWYgJGxzIT0nJ3tcclxuICAgIGxldHRlci1zcGFjaW5nOnVucXVvdGUoJGxzKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBpbnB1dC1oZWlnaHQtcGFkZGluZygkZlNpemUsJGhlaWdodCl7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgcGFkZGluZy10b3A6KCRoZWlnaHQgLSAkZlNpemUpLzIgIWltcG9ydGFudDtcclxuICBwYWRkaW5nLWJvdHRvbTooJGhlaWdodCAtICRmU2l6ZSkvMiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWl4aW4gdmVydGljYWwtY2VudGVye1xyXG4gICY6YWZ0ZXJ7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGZvbnQtc2l6ZTogMDtcclxuICAgIG1hcmdpbi1sZWZ0Oi0uM3JlbTtcclxuICB9XHJcbiAgJj4qe1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBhbGlnbi12ZXJ0aWNhbCgkdmFsdWUpe1xyXG4gICY6YmVmb3Jle1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiAkdmFsdWU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDowO1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gIH1cclxuICAmPip7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogJHZhbHVlO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHZlcnRpY2FsLWNlbnRlci1qdXN0aWZ5e1xyXG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbiAgJj4qe1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcbiAgJjpiZWZvcmV7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGZvbnQtc2l6ZTogMDtcclxuICAgIG1hcmdpbi1sZWZ0Oi0uM3JlbTtcclxuICB9XHJcblxyXG4gICY6YWZ0ZXJ7XHJcbiAgICBjb250ZW50OlwiXCI7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMDtcclxuICAgIGZvbnQtc2l6ZTogMDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtYXJnaW4tY2VudGVye1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbkBtaXhpbiBsaXN0LWluZGVudCgkbWFyZ2luKXtcclxuICAmPmxpK2xpe1xyXG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1peGluIGNoaWxkcygpe1xyXG4gICY+Kisqe1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyA9IE9wYWNpdHlcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcclxuICBmaWx0ZXI6IHVucXVvdGUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0je3JvdW5kKCRvcGFjaXR5ICogMTAwKX0pXCIpO1xyXG4gIG9wYWNpdHk6ICRvcGFjaXR5O1xyXG5cclxuICAvKiBIYWNrIElFNiAqL1xyXG4gIC5sdC1pZTcgJiB7XHJcbiAgICBmaWx0ZXIgOiBhbHBoYShvcGFjaXR5PSN7cm91bmQoJG9wYWNpdHkgKiAxMDApfSk7XHJcbiAgICB6b29tOiAxO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHJlc2V0LXVsKCkge1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuQG1peGluIHVsLWp1c3RpZnkoJGVsOmxpKXtcclxuICAmOmFmdGVye3dpZHRoOiAxMDAlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGNvbnRlbnQ6IFwiLlwiOyB2aXNpYmlsaXR5OiBoaWRkZW47fVxyXG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbiAgPiN7JGVsfXtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG59XHJcblxyXG5AbWl4aW4gX2NsZWFyZml4KCl7XHJcbiAgJjphZnRlcntcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gICAgY29udGVudDogXCIgXCI7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIGhlaWdodDogMDtcclxuICB9XHJcbiAgLy8gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAvL2Rpc3BsYXk6IGJsb2NrO1xyXG4gIEBhdC1yb290ICogaHRtbCAme1xyXG4gICAgaGVpZ2h0OiAxJTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBpcy10cmFuc2Zvcm1lZCgkeDotNTAlLCR5Oi01MCUsICR3aWR0aDogMTAwJSwgJHA6YWJzb2x1dGUpe1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiAkcDtcclxuICBsZWZ0OiA1MCU7dG9wOiA1MCU7XHJcbiAgd2lkdGg6ICR3aWR0aDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgkeCwkeSkpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uU2V0dGluZ3MoJG5hbWUsICR0aW1pbmcsICRmdW5jdGlvbjpsaW5lYXIsICRsb29wOmluZmluaXRlLCAkZGlyZWN0aW9uOm5vcm1hbCwgJGRlbGF5OiAwcykge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiAkbmFtZSAkdGltaW5nICRkZWxheSAkZnVuY3Rpb24gJGxvb3AgJGRpcmVjdGlvbjtcclxuICAtbW96LWFuaW1hdGlvbjogJG5hbWUgJHRpbWluZyAkZGVsYXkgJGZ1bmN0aW9uICRsb29wICRkaXJlY3Rpb247XHJcbiAgLW8tYW5pbWF0aW9uOiAkbmFtZSAkdGltaW5nICRkZWxheSAkZnVuY3Rpb24gJGxvb3AgJGRpcmVjdGlvbjtcclxuICBhbmltYXRpb246ICRuYW1lICR0aW1pbmcgJGRlbGF5ICRmdW5jdGlvbiAkbG9vcCAkZGlyZWN0aW9uO1xyXG59XHJcblxyXG5AbWl4aW4gYWJzb2x1dGVTdHJldGNoIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IH1cclxuXHJcbi8vIFRleHQgb3ZlcmZsb3dcclxuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xyXG5cclxuQG1peGluIHRleHQtb3ZlcmZsb3coKSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG5AbWl4aW4gaGlkZSgpe1xyXG4gIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vLyBNSVhJTidzIEZPUiBGTEVYIExBWU9VVCB3LyBGTE9BVCBGQUxMQkFDSyBFTkFCTEVEXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIDEuIEVuYWJsZSBGbGV4IExheW91dFxyXG4vLyAyLiBMYXlvdXQgQWxpZ25tZW50IE9wdGlvbnNcclxuLy8gMy4gUGFyZW50IFVzYWdlOiBFbmFibGUgQ0xFQVJGSVggLyBEaXNhYmxlIENMRUFSRklYXHJcbi8vIDQuIENoaWxkIFVzYWdlOiBFbmFibGUgRkxPQVRTIC8gRGlzYWJsZSBGTE9BVFNcclxuLy8gNS4gRmlyZWZveCBVc2FnZTogTGF5b3V0cyB0aGF0IG5lZWQgXCJGbGV4LXdyYXBcIiB3aWxsIG5lZWQgdG8gYmUgcmV2ZXJ0ZWQgdG8gYSBmbG9hdC5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLy8gMS4gRW5hYmxlIEZsZXggTGF5b3V0XHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuQG1peGluIGRpc3BsYXlGbGV4KCl7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNwbGF5SW5saW5lRmxleCgpe1xyXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcclxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi8vIDIuIExheW91dCBBbGlnbm1lbnQgT3B0aW9uc1xyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKiBGbGV4LWZsb3cgaXMgc2hvcnQgaGFuZCBmb3IgXCJmbGV4LWRpcmVjdGlvblwiICYgXCJmbGV4LXdyYXBcIiAqL1xyXG5AbWl4aW4gZmxleEZsb3dSb3dXcmFwKCl7XHJcbiAgLyogU2FmYXJpIC0gUHJlIEZsZXggRmxvdyAqL1xyXG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcclxuICAvKiBNUyAtIFByZSBGbGV4IEZsb3cgKi9cclxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xyXG4gIC8qIE1veiAtIFByZSBGbGV4IEZsb3cgKi9cclxuICAtbW96LWZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgLW1vei1mbGV4LXdyYXA6IHdyYXA7XHJcbiAgLyogRmxleCBGbG93ICAqL1xyXG4gIC13ZWJraXQtZmxleC1mbG93OiByb3cgd3JhcDtcclxuICAtbW96LWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgLXdlYmtpdC1mbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbn1cclxuLyogRmxleC1kaXJlY3Rpb24gLSBDb2x1bW4gKi9cclxuQG1peGluIGZsZXhEaXJlY3Rpb25Db2woKXtcclxuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgLW1vei1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcbkBtaXhpbiBmbGV4RGlyZWN0aW9uQ29sUmV2ZXJzZSgpe1xyXG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG4gIC1tb3otZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XHJcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xyXG59XHJcbi8qIEZsZXgtZGlyZWN0aW9uIC0gUm93ICovXHJcbkBtaXhpbiBmbGV4RGlyZWN0aW9uUm93KCl7XHJcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIC1tb3otZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxufVxyXG5AbWl4aW4gZmxleERpcmVjdGlvblJvd1JldmVyc2UoKXtcclxuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICAtbW96LWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxufVxyXG5AbWl4aW4ganVzdGlmeUNvbnRlbnRDZW50ZXIoKXtcclxuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4ganVzdGlmeUNvbnRlbnRTcGFjZUJldHdlZW4oKXtcclxuICAtd2Via2l0LWJveC1wYWNrOiBzcGFjZS1iZXR3ZWVuO1xyXG4gIC1tb3otYm94LXBhY2s6IHNwYWNlLWJldHdlZW47XHJcbiAgLW1zLWZsZXgtcGFjazogc3BhY2UtYmV0d2VlbjtcclxuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuQG1peGluIGp1c3RpZnlDb250ZW50RmxleFN0YXJ0KCl7XHJcbiAgLXdlYmtpdC1ib3gtcGFjazogZmxleC1zdGFydDtcclxuICAtbW96LWJveC1wYWNrOiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1mbGV4LXBhY2s6IGZsZXgtc3RhcnQ7XHJcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG59XHJcbkBtaXhpbiBqdXN0aWZ5Q29udGVudEZsZXhFbmQoKXtcclxuICAtd2Via2l0LWJveC1wYWNrOiBmbGV4LWVuZDtcclxuICAtbW96LWJveC1wYWNrOiBmbGV4LWVuZDtcclxuICAtbXMtZmxleC1wYWNrOiBmbGV4LWVuZDtcclxuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG4vKiBBbGlnbiBJdGVtcyAtIFN0cmV0Y2ggKi9cclxuQG1peGluIGFsaWduSXRlbXNTdHJldGNoKCl7XHJcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7XHJcbiAgLW1vei1ib3gtYWxpZ246IHN0cmV0Y2g7XHJcbiAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XHJcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxufVxyXG4vKiBBbGlnbiBJdGVtcyAtIENlbnRlciAqL1xyXG5AbWl4aW4gYWxpZ25JdGVtc0NlbnRlcigpe1xyXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XHJcbiAgLW1vei1ib3gtYWxpZ246IGNlbnRlcjtcclxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xyXG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcbkBtaXhpbiBhbGlnbkNvbnRlbnRGbGV4U3RhcnQoKXtcclxuICAtbW96LWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIC1tcy1hbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbn1cclxuQG1peGluIGFsaWduQ29udGVudEZsZXhFbmQoKXtcclxuICAtbW96LWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogZmxleC1lbmQ7XHJcbiAgLW1zLWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcbkBtaXhpbiBhbGlnblNlbGZDZW50ZXIoKXtcclxuICAtbW96LWFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAtd2Via2l0LWFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAtbXMtYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gZmxleDEtMS0xMDAoKXtcclxuICAtbW96LWZsZXg6IDEgMSAxMDAlO1xyXG4gIC13ZWJraXQtZmxleDogMSAxIDEwMCU7XHJcbiAgLW1zLWZsZXg6IDEgMSAxMDAlO1xyXG4gIGZsZXg6IDEgMSAxMDAlO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi8vIDMuIFBhcmVudCB1c2FnZTogRW5hYmxlIENMRUFSRklYIC8gRGlzYWJsZSBDTEVBUkZJWFxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKiBDbGVhcmZpeCAqL1xyXG5AbWl4aW4gY2xlYXJmaXgoKXtcclxuICAmOmJlZm9yZSwgJjphZnRlcntcclxuICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgfVxyXG5cclxuICAmOmFmdGVye1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgICAvLyAgSUVcclxuICAgICp6b29tOiAxO1xyXG4gIH1cclxufVxyXG4vKiBSZXZlcnQgY2xlYXJmaXggKi9cclxuQG1peGluIHJldmVydENsZWFyZml4KCl7XHJcbiAgJjpiZWZvcmUsICY6YWZ0ZXJ7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgLy8gIElFXHJcbiAgICAqem9vbTogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLy8gNC4gQ2hpbGRyZW4gdXNhZ2U6IC0gRW5hYmxlIEZMT0FUUyAvIERpc2FibGUgRkxPQVRTXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuQG1peGluIGZsb2F0VG9nZ2xlRm9yRmxleCgpe1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIC8qIFRoZSBNb2Rlcm5penIgY2xhc3NlcyBvbiB0aGUgRWRpdG9yICYgRnVsbCBwYWdlIGFyZSBzbGlnaHR5IGRpZmZlcmVudCwgc28gSSBoYXZlIHRvIGluY2x1ZGUgXCIubm8tZmxleGJveFwiLCB3aGljaCBtYWtlcyBtZSBzYWQuICovXHJcbiAgQGF0LXJvb3QgLmZsZXhib3ggJntcclxuICAgIGZsb2F0OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4vLyA1LiBGaXJlZm94IFVzYWdlOiBMYXlvdXRzIHRoYXQgbmVlZCBcIkZsZXgtd3JhcFwiIHdpbGwgbmVlZCB0byBiZSByZXZlcnRlZCB0byBhIGZsb2F0LlxyXG4vLyBNb2Rlcm5penIgaGFzIGEgYnVnIHdoZXJlIGl0IGluc2VydHMgXCJuby1mbGV4Ym94XCIsIHdoZW4gaW4gZmFjdCBpdCBkb2VzLlxyXG4vLyBVbnRpbCB0aGlzIGNoYW5nZXMgd2UgbmVlZCB0byBpbmNsdWRlIFwiLm5vLWZsZXhib3ggJlwiXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbkBtaXhpbiAtbW96LWNsZWFyZml4KCl7XHJcbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHN0eWxlc1xyXG4gIEBhdC1yb290IC5mbGV4Ym94ICZ7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xyXG4gIH1cclxuICBAYXQtcm9vdCAubm8tZmxleGJveCAme1xyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcclxuICB9XHJcbn1cclxuQG1peGluIC1tb3otbm9GbGV4V3JhcC1GbG9hdGxlZnQoKXtcclxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3R5bGVzXHJcbiAgQGF0LXJvb3QgLmZsZXhib3ggJntcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gIH1cclxuICBAYXQtcm9vdCAubm8tZmxleGJveCAme1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xyXG4gIGhlaWdodDogMDtcclxuICB3aWR0aDogMDtcclxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgYm9yZGVyLXdpZHRoOiAkc2l6ZSAvIDI7XHJcblxyXG4gIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcclxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICAgJGNvbG9yO1xyXG5cclxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XHJcbiAgICBib3JkZXItdG9wLWNvbG9yOiAgICAkY29sb3I7XHJcblxyXG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcclxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogICRjb2xvcjtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gYm9yZGVyZWQtdHJpYW5nbGUoJHNpemUsICRib3JkZXItd2lkdGgsICRjb2xvciwgJGJvcmRlci1jb2xvciwgJGRpcmVjdGlvbiwgJGFsdDogZmFsc2UpIHtcclxuICAkYmFjay1zaXplOiAkc2l6ZSArICgkYm9yZGVyLXdpZHRoICogMik7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICBtaW4td2lkdGg6ICRzaXplO1xyXG4gIG1pbi1oZWlnaHQ6ICRzaXplO1xyXG5cclxuICAmOmFmdGVyLFxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICB9XHJcblxyXG4gICY6YWZ0ZXIge1xyXG4gICAgQGluY2x1ZGUgdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSB0cmlhbmdsZSgkYmFjay1zaXplLCAkYm9yZGVyLWNvbG9yLCAkZGlyZWN0aW9uKTtcclxuICAgICRtaWQtYm9yZGVyLXdpZHRoOiAoJGJvcmRlci13aWR0aCAvIDIpO1xyXG4gICAgJGJvcmRlci13aWR0aC1hbmQtbWlkOiAkYm9yZGVyLXdpZHRoICsgJG1pZC1ib3JkZXItd2lkdGg7XHJcblxyXG4gICAgQGlmICgkYWx0ID09IHRydWUpIHtcclxuICAgICAgJG1pZC1ib3JkZXItd2lkdGg6IDA7XHJcbiAgICAgICRib3JkZXItd2lkdGgtYW5kLW1pZDogJGJvcmRlci13aWR0aCAqIDI7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtICRib3JkZXItd2lkdGg7XHJcblxyXG4gICAgICBAaWYgKCRkaXJlY3Rpb24gPT0gZG93bikge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0kbWlkLWJvcmRlci13aWR0aDtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLSAkYm9yZGVyLXdpZHRoLWFuZC1taWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0gJGJvcmRlci13aWR0aDtcclxuXHJcbiAgICAgIEBpZiAoJGRpcmVjdGlvbiA9PSByaWdodCkge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtICRtaWQtYm9yZGVyLXdpZHRoO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLSAkYm9yZGVyLXdpZHRoLWFuZC1taWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5AbWl4aW4gY2xvc2UoJHdpZHRoOjEuNXJlbSwgJGJnOiNmZmYpe1xyXG4gICY6YmVmb3JlLCY6YWZ0ZXJ7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogJGJnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsLTUwJSkgcm90YXRlKC00NWRlZyk7XHJcbiAgfVxyXG4gICY6YWZ0ZXJ7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG4gIH1cclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICB3aWR0aDogJHdpZHRoO1xyXG4gIGhlaWdodDogJHdpZHRoO1xyXG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59IiwiQG1peGluIHZoKCRwcm9wLCR2aCl7XHJcbiAgI3skcHJvcH06ICN7JHZofXZoO1xyXG4gICN7JHByb3B9OiBjYWxjKHZhcigtLXZoLCAxdmgpICogI3skdmh9KTtcclxufVxyXG5cclxuQG1peGluIGJsdXIoJHI6MTApe1xyXG4gIGZpbHRlcjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDZmlsdGVyIGlkPSdhJyB4PScwJyB5PScwJyB3aWR0aD0nMScgaGVpZ2h0PScxJyBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9J3NSR0InJTNFJTNDZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPScjeyRyfScgcmVzdWx0PSdiJy8lM0UlM0NmZU1vcnBob2xvZ3kgb3BlcmF0b3I9J2RpbGF0ZScgcmFkaXVzPScjeyRyfScvJTNFICUzQ2ZlTWVyZ2UlM0UlM0NmZU1lcmdlTm9kZS8lM0UlM0NmZU1lcmdlTm9kZSBpbj0nYicvJTNFJTNDL2ZlTWVyZ2UlM0UlM0MvZmlsdGVyJTNFICUzQy9zdmclM0UjYVwiKTtcclxufVxyXG5cclxuQG1peGluIHNjcm9sbE9mZnNldCgkaGVpZ2h0OjEycmVtKXtcclxuICAmOjpiZWZvcmV7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgbWFyZ2luLXRvcDogLSRoZWlnaHQ7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gYnVyZ2VyLXNpemUoJHdpZHRoOiA0cmVtLCAkaGVpZ2h0OiAzcmVtLCAkYnVyZ2VyLWxpbmUtaGVpZ2h0Oi4ycmVtKXtcclxuICB3aWR0aDogJHdpZHRoO1xyXG4gIGhlaWdodDogJGhlaWdodDtcclxuXHJcbiAgJi5idXJnZXIge1xyXG4gICAgJjphZnRlcixcclxuICAgICY6YmVmb3JlLFxyXG4gICAgc3BhbntcclxuICAgICAgaGVpZ2h0OiAkYnVyZ2VyLWxpbmUtaGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgc3BhbntcclxuICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgaGVpZ2h0OiRidXJnZXItbGluZS1oZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgbWFyZ2luLXRvcDogLSgkYnVyZ2VyLWxpbmUtaGVpZ2h0KS8yO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGJ1cmdlci1jb2xvcigkY29sb3Ipe1xyXG4gIC5tZW51LWljb24sLm1lbnUtaWNvbi0tYXNpZGV7XHJcbiAgICAmLmJ1cmdlcntcclxuICAgICAgc3BhbiwmOmJlZm9yZSwmOmFmdGVye2NvbG9yOiAkY29sb3I7fVxyXG4gICAgfVxyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBjbG9zZS1iKCRjb2xvciwkd2lkdGg6M3JlbSwgJGxpbmU6MC4ycmVtLCAkY29sb3I6ICNmZmYpe1xyXG4gICY6YmVmb3JlLCY6YWZ0ZXJ7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDowO1xyXG4gICAgbGVmdDogKCR3aWR0aC8yKSArICRsaW5lLzI7XHJcbiAgICBoZWlnaHQ6ICR3aWR0aCArICRsaW5lLzI7XHJcbiAgICB3aWR0aDogJGxpbmU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG4gICY6YmVmb3Jle3RyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTt9XHJcbiAgJjphZnRlcnt0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO31cclxuXHJcbiAgJjpob3ZlcntcclxuICAgIG9wYWNpdHk6IC41O1xyXG4gIH1cclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgLy9wb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgZm9udC1zaXplOiAwO1xyXG4gIHdpZHRoOiAkd2lkdGg7XHJcbiAgaGVpZ2h0OiAkd2lkdGg7XHJcbiAgLy9tYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2UsIGJhY2tncm91bmQgLjNzIGVhc2U7XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gc2VjdGlvbi1vdmVybGF5LW1vZCgkY2xhc3M6JycsJGJnOmxpbmVhci1ncmFkaWVudCg5NGRlZywgI0YwNzExOEZDIDAlLCAjMDAwNzU1IDEwMCUpLCAkb3BhY2l0eTowLjcxLCAkbW9kZTpub3JtYWwpe1xyXG4gICYuX2JnLW92ZXJsYXl7XHJcblxyXG4gICAgQGlmICgkY2xhc3MhPScnKXtcclxuICAgICAgJi0tI3skY2xhc3N9e1xyXG4gICAgICAgIC5iZy1pbWd7XHJcbiAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgQGluY2x1ZGUgYWJzb2x1dGVTdHJldGNoO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcclxuICAgICAgICAgICAgbWl4LWJsZW5kLW1vZGU6ICRtb2RlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAkYmcgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcblxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHNlY3Rpb24tb3ZlcmxheSgkYmc6bGluZWFyLWdyYWRpZW50KDk0ZGVnLCAjRjA3MTE4RkMgMCUsICMwMDA3NTUgMTAwJSksICRvcGFjaXR5OjAuNzEsICRtb2RlOm5vcm1hbCl7XHJcbiAgJi5fYmctb3ZlcmxheXtcclxuICAgIC5iZy1pbWd7XHJcbiAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgQGluY2x1ZGUgYWJzb2x1dGVTdHJldGNoO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICRiZyAwJSAwJSBuby1yZXBlYXQgcGFkZGluZy1ib3g7XHJcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XHJcbiAgICAgICAgbWl4LWJsZW5kLW1vZGU6ICRtb2RlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKlxyXG5odHRwczovL3d3dy5zYXNzbWVpc3Rlci5jb20vZ2lzdC83ZjIyZTQ0YWNlNDliNTEyNGVlY1xyXG5AaW5jbHVkZSBmbHVpZC10eXBlKGZvbnQtc2l6ZSwgMzIwcHgsIDEzNjZweCwgMTRweCwgMThweCk7XHJcbkBpbmNsdWRlIGZsdWlkLXR5cGUocGFkZGluZy1ib3R0b20gcGFkZGluZy10b3AsIDIwZW0sIDcwZW0sIDJlbSwgNGVtKTtcclxuKi9cclxuXHJcbkBtaXhpbiBmbHVpZC10eXBlKCRwcm9wZXJ0aWVzLCAkbWluLXZ3LCAkbWF4LXZ3LCAkbWluLXZhbHVlLCAkbWF4LXZhbHVlKSB7XHJcbiAgQGVhY2ggJHByb3BlcnR5IGluICRwcm9wZXJ0aWVzIHtcclxuICAgICN7JHByb3BlcnR5fTogJG1pbi12YWx1ZTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWluLXZ3KSB7XHJcbiAgICBAZWFjaCAkcHJvcGVydHkgaW4gJHByb3BlcnRpZXMge1xyXG4gICAgICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skbWluLXZhbHVlfSArICN7c3RyaXAtdW5pdCgkbWF4LXZhbHVlIC0gJG1pbi12YWx1ZSl9ICogKDEwMHZ3IC0gI3skbWluLXZ3fSkgLyAje3N0cmlwLXVuaXQoJG1heC12dyAtICRtaW4tdncpfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1heC12dykge1xyXG4gICAgQGVhY2ggJHByb3BlcnR5IGluICRwcm9wZXJ0aWVzIHtcclxuICAgICAgI3skcHJvcGVydHl9OiAkbWF4LXZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xyXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpID09IFwibnVtYmVyXCIgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSB7XHJcbiAgICBAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJG51bWJlcjtcclxufVxyXG5cclxuQG1peGluIGJ0bi1tb2QoJGNsYXNzLCRidG4tY29sb3IsICRjb2xvcjojZmZmLCAkY29sb3ItaG92ZXI6JGNvbG9yKXtcclxuICAmLmJ0bi0tI3skY2xhc3N9e1xyXG4gICAgJjpob3ZlciwgJjpmb2N1c3tcclxuICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRidG4tY29sb3IsMTAlKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJ0bi1jb2xvciwxMCUpO1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xyXG4gICAgfVxyXG4gICAgYmFja2dyb3VuZDogJGJ0bi1jb2xvcjtcclxuICAgIGJvcmRlci1jb2xvcjogJGJ0bi1jb2xvcjtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gYnRuLWNvbG9yKCRidG4tY29sb3IsICRjb2xvcjojZmZmLCAkY29sb3ItaG92ZXI6JGNvbG9yKXtcclxuICAmOmhvdmVyLCAmOmZvY3Vze1xyXG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRidG4tY29sb3IsMTAlKTtcclxuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRidG4tY29sb3IsMTAlKTtcclxuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XHJcbiAgfVxyXG4gIGJhY2tncm91bmQ6ICRidG4tY29sb3I7XHJcbiAgYm9yZGVyLWNvbG9yOiAkYnRuLWNvbG9yO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbn1cclxuXHJcbkBtaXhpbiBoaWRlLXNjcm9sbGJhcigpe1xyXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC8qIEhpZGUgc2Nyb2xsYmFyIGZvciBJRSwgRWRnZSBhbmQgRmlyZWZveCAqL1xyXG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgIC8qIElFIGFuZCBFZGdlICovXHJcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAgLyogRmlyZWZveCAqL1xyXG59XHJcblxyXG5AbWl4aW4gaW1hZ2UtcmVuZGVyKCl7XHJcbiAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcclxuICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7ICAgICAgICAgIC8qIEZpcmVmb3ggKi9cclxuICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzOyAgICAgICAgICAgIC8qIE9wZXJhICovXHJcbiAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OyAvKiBXZWJraXQgKG5vbi1zdGFuZGFyZCBuYW1pbmcpKi9cclxuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAgIC8qIElFIChub24tc3RhbmRhcmQgcHJvcGVydHkpICovXHJcbn1cclxuXHJcbkBtaXhpbiBzY3JvbGxiYXItc3R5bGUoJHJhZGl1czoxcmVtLCAkd2lkdGg6MXJlbSwgJHRyYWNrOiNGNUY1RjUsICR0aHVtYjojNTU1KXtcclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFja1xyXG4gIHtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsMCwwLDAuMyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRyYWNrO1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXJcclxuICB7XHJcbiAgICAvLy13ZWJraXQtYXBwZWFyYW5jZTogbm9uZSFpbXBvcnRhbnQ7XHJcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkd2lkdGg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRyYWNrO1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJcclxuICB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwwLDAsLjMpO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsMCwwLC4zKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR0aHVtYjtcclxuICAgICY6dmVydGljYWx7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsMCwwLC4zKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRodW1iO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHtcclxuICAgIGJvcmRlci1yYWRpdXM6JHJhZGl1cztcclxuICB9XHJcbiAgJjo6LXdlYmtpdC1yZXNpemVyICB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGNoZXhib3hTaXplKFxyXG4gICR3aWR0aDokY2hlY2tib3gtaW5wdXQtd2lkdGgsXHJcbiAgJGhlaWdodDokY2hlY2tib3gtaW5wdXQtaGVpZ2h0LFxyXG4gICRmc2l6ZTokZm9udC1zaXplLWJvZHksICRrOjEuNCl7XHJcblxyXG4gIFt0eXBlPVwiY2hlY2tib3hcIl06bm90KDpjaGVja2VkKSArIGxhYmVsLFxyXG4gIFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVse1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkd2lkdGggKyAxO1xyXG4gICAgQGF0LXJvb3QgW2Rpcj1cInJ0bFwiXSAme1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICR3aWR0aCArIDE7XHJcbiAgICB9XHJcbiAgICBAYXQtcm9vdCAucnRsICZ7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgcGFkZGluZy1yaWdodDogJHdpZHRoICsgMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDpiZWZvcmUsXHJcbiAgW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmFmdGVye1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICAgIGZvbnQtc2l6ZTogJGZzaXplICogMS4xMjtcclxuICB9XHJcblxyXG4gIFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDphZnRlcntcclxuICAgIG1hcmdpbi10b3A6ICgkZnNpemUgLSAkaGVpZ2h0KS8yICogJGsvNDtcclxuICAgIG1hcmdpbi1yaWdodDogKCR3aWR0aCAtICRmc2l6ZSkvMiAqICRrO1xyXG4gIH1cclxuXHJcbiAgW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVse1xyXG4gICAgZm9udC1zaXplOiAkZnNpemU7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1jb3VudCgkY291bnQ6MiwgJGdhcDozcmVtLCAkd2lkdGg6YXV0bywgJGJyZWFrOmF2b2lkLCl7XHJcbiAgY29sdW1uLWNvdW50OiAkY291bnQ7XHJcbiAgY29sdW1uLWdhcDogJGdhcDtcclxuICBjb2x1bW4td2lkdGg6ICR3aWR0aDtcclxuICA+bGksPmRpdntcclxuICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogJGJyZWFrO1xyXG4gICAgcGFnZS1icmVhay1pbnNpZGU6ICRicmVhaztcclxuICAgIGJyZWFrLWluc2lkZTogJGJyZWFrO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGltYWdlLTJ4KCRpbWFnZSwgJHdpZHRoLCAkaGVpZ2h0KSB7XHJcbiAgQG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMyksXHJcbiAgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIuNi8yKSxcclxuICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxyXG4gIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxyXG4gIChtaW4tcmVzb2x1dGlvbjogMS4zZHBweCkge1xyXG4gICAgLyogb24gcmV0aW5hLCB1c2UgaW1hZ2UgdGhhdCdzIHNjYWxlZCBieSAyICovXHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGltYWdlKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc2Nyb2xsYmFycygkc2l6ZSwgJGZvcmVncm91bmQtY29sb3IsICRiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoJGZvcmVncm91bmQtY29sb3IsIHdoaXRlLCAgNTAlKSkge1xyXG4gIC8vIEZvciBHb29nbGUgQ2hyb21lXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgd2lkdGg6ICAkc2l6ZTtcclxuICAgIGhlaWdodDogJHNpemU7XHJcbiAgfVxyXG5cclxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICB9XHJcblxyXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gIH1cclxuXHJcbiAgLy8gRm9yIEludGVybmV0IEV4cGxvcmVyXHJcbiAgJiB7XHJcbiAgICBzY3JvbGxiYXItZmFjZS1jb2xvcjogJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBzY3JvbGxiYXItdHJhY2stY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRleHRzbGljZSgkbGluZSl7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAkbGluZTtcclxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbkBtaXhpbiBkaXJlY3Rpb24oJGRpcjpsdHIpe1xyXG4gIEBhdC1yb290IFtkaXI9XCIjeyRkaXJ9XCJdICZ7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbiAgQGF0LXJvb3QgLiN7JGRpcn0gJntcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG5vZGVjb3J7XHJcbiAgJjpob3Zlcnt0ZXh0LWRlY29yYXRpb246IG5vbmU7fVxyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbmZpeCB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuXHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbn1cclxuXHJcbkBtaXhpbiBmYWRlZC1ib3R0b217XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICY6YWZ0ZXJ7XHJcbiAgICBjb250ZW50OlwiXCI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMCA7XHJcbiAgICB6LWluZGV4OiAyMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGhlaWdodDogNnJlbTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjU1LDI1NSwyNTUsMSksIHJnYmEoMjU1LDI1NSwyNTUsMCkpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZhZGVkLXRvcHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgJjpiZWZvcmV7XHJcbiAgICBjb250ZW50OlwiXCI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMCA7XHJcbiAgICB6LWluZGV4OiAyMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGhlaWdodDogNnJlbTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjU1LDI1NSwyNTUsMCksIHJnYmEoMjU1LDI1NSwyNTUsMSkpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGlubGluZS12LWNlbnRlcntcclxuICAmPip7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIH1cclxuICAmOmFmdGVye1xyXG4gICAgZm9udC1zaXplOjA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6MDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcbn0iLCIvKiBFcmljIE1leWVyJ3MgQ1NTIFJlc2V0ICovXHJcbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxyXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXHJcbmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcclxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcclxuYiwgdSwgaSwgY2VudGVyLFxyXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxyXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcclxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXHJcbmFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxyXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXHJcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxyXG50aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdGJvcmRlcjogMDtcclxuXHRmb250LXNpemU6IDEwMCU7XHJcblx0Zm9udDogaW5oZXJpdDtcclxuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xyXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxyXG5mb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24sIG1haW4ge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbmJvZHkge1xyXG5cdGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcbm9sLCB1bCB7XHJcblx0bGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5ibG9ja3F1b3RlLCBxIHtcclxuXHRxdW90ZXM6IG5vbmU7XHJcbn1cclxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXHJcbnE6YmVmb3JlLCBxOmFmdGVyIHtcclxuXHRjb250ZW50OiAnJztcclxuXHRjb250ZW50OiBub25lO1xyXG59XHJcbnRhYmxlIHtcclxuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG5cdGJvcmRlci1zcGFjaW5nOiAwO1xyXG59XHJcbi8qIEVuZCBvZiBFcmljIE1leWVyJ3MgQ1NTIFJlc2V0ICovXHJcblxyXG4qOmZvY3Vze1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuXHJcbi8qIEZvcm1zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcclxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXHJcbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxyXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQsXHJcbm9wdGdyb3VwLFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xyXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cclxuICBtYXJnaW46IDA7IC8qIDMgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLlxyXG4gKi9cclxuXHJcbmJ1dHRvbiB7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXHJcbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXHJcbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOCssIGFuZCBPcGVyYVxyXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5zZWxlY3Qge1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcclxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXHJcbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cclxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcclxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXHJcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcclxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cclxuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXHJcbiAqL1xyXG5cclxuYnV0dG9uW2Rpc2FibGVkXSxcclxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cclxuICovXHJcblxyXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXHJcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcclxuICBib3JkZXI6IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cclxuICogdGhlIFVBIHN0eWxlc2hlZXQuXHJcbiAqL1xyXG5cclxuaW5wdXQge1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXHJcbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXHJcbiAqXHJcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXHJcbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXHJcbiAqL1xyXG5cclxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxyXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cclxuICBwYWRkaW5nOiAwOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxyXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxyXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXHJcbiAqL1xyXG5cclxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcclxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cclxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXHJcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxyXG4gKi9cclxuXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXHJcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cclxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xyXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXHJcbiAqL1xyXG5cclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG59IiwiJWhpZGV7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4uYmxvY2t7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuLmxlZnR7ZmxvYXQ6IGxlZnQ7fVxyXG4ucmlnaHR7ZmxvYXQ6IHJpZ2h0O31cclxuLnZpc2libGV7b3ZlcmZsb3c6IHZpc2libGUhaW1wb3J0YW50O31cclxuLmhpZGRlbntcclxuICBvcGFjaXR5OiAwO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG5cclxuLnRleHQtY2VudGVye3RleHQtYWxpZ246IGNlbnRlcjt9XHJcbi50ZXh0LXJpZ2h0e3RleHQtYWxpZ246IHJpZ2h0O31cclxuLmhpZGV7ZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7fVxyXG5cclxuLmZ1bGwtd2lkdGh7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5mdWxsLWhlaWdodHtcclxuICBoZWlnaHQ6IDEwMCVcclxufVxyXG4uaW5saW5lLWxpc3R7XHJcbiAgJi0tdG9we3ZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDt9XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgPmxpe2Rpc3BsYXk6IGlubGluZS1ibG9jazt9XHJcbn1cclxuXHJcbi5hbGlnbi1iYXNlbGluZXthbGlnbi1pdGVtczogYmFzZWxpbmU7fVxyXG5cclxuLm5vLXNjcm9sbHtvdmVyZmxvdzogaGlkZGVuO31cclxuLm1yLWF1dG97bWFyZ2luLXJpZ2h0OiBhdXRvO0BhdC1yb290IFtkaXI9XCJydGxcIl0gJnttYXJnaW4tbGVmdDogYXV0bzttYXJnaW4tcmlnaHQ6IGluaXRpYWw7fX1cclxuLm1sLWF1dG97bWFyZ2luLWxlZnQ6IGF1dG87QGF0LXJvb3QgW2Rpcj1cInJ0bFwiXSAme21hcmdpbi1yaWdodDogYXV0bzttYXJnaW4tbGVmdDppbml0aWFsO319XHJcblxyXG4ubXQtMHttYXJnaW4tdG9wOiAwcmVtO31cclxuLm10LTF7bWFyZ2luLXRvcDogMXJlbTt9XHJcbi5tdC0ye21hcmdpbi10b3A6IDJyZW07fVxyXG4ubXQtM3ttYXJnaW4tdG9wOiAzcmVtO31cclxuLm10LTR7bWFyZ2luLXRvcDogNHJlbTt9XHJcbi5tdC01e21hcmdpbi10b3A6IDVyZW07fVxyXG4ubWItMHttYXJnaW4tYm90dG9tOiAwcmVtO31cclxuLm1iLTF7bWFyZ2luLWJvdHRvbTogMXJlbTt9XHJcbi5tYi0ye21hcmdpbi1ib3R0b206IDJyZW07fVxyXG4ubWItM3ttYXJnaW4tYm90dG9tOiAzcmVtO31cclxuLm1iLTR7bWFyZ2luLWJvdHRvbTogNHJlbTt9XHJcbi5tYi01e21hcmdpbi1ib3R0b206IDVyZW07fVxyXG5cclxuQGZvciAkaSBmcm9tIDAgdG8gNSB7XHJcbiAgLnB0LSN7JGkrMX17XHJcbiAgICBwYWRkaW5nLXRvcDogI3skaSsxfXJlbTtcclxuICB9XHJcbiAgLnBiLSN7JGkrMX17XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogI3skaSsxfXJlbTtcclxuICB9XHJcbiAgLnB5LSN7JGkrMX17XHJcbiAgICBwYWRkaW5nLXRvcDogI3skaSsxfXJlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAjeyRpKzF9cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLmltZy1yZW5kZXJ7XHJcbiAgQGluY2x1ZGUgaW1hZ2UtcmVuZGVyO1xyXG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuQGltcG9ydCBcIi4uLy4uL3ZhcmlhYmxlc1wiO1xyXG5cclxuKiB7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG5ib2R5e1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcclxuICAvL2ZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZztcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XHJcbiAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gIGJhY2tncm91bmQ6ICRiZy1jb2xvcjtcclxuICBmb250LXNpemU6ICRmb250LXNpemUtYm9keTtcclxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XHJcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgLy90ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xyXG4gIC8vLW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcclxuICAvLy1tcy1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcclxuICAvLy13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XHJcbiAgLy9mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcclxufVxyXG5cclxuaHRtbHtcclxuICBtaW4taGVpZ2h0OiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBmb250LXNpemU6ICRodG1sLWZvbnQtc2l6ZSAhaW1wb3J0YW50O1xyXG4gIC8vLXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtcclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpe1xyXG4gICAgZm9udC1zaXplOiA0Mi41JSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQzOXB4KSBhbmQgKG1pbi13aWR0aDogMTI4MHB4KXtcclxuICAgIC8vZm9udC1zaXplOiBjYWxjKCgwLjc3dncpKjAuNzcpICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjgwcHgpIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpe1xyXG4gICAgZm9udC1zaXplOiBjYWxjKCgwLjh2dykqMC43NykgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkgYW5kIChtaW4td2lkdGg6IDc2OHB4KXtcclxuICAgIGZvbnQtc2l6ZTogY2FsYygoMC44N3Z3KSowLjc5KSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KXtcclxuICAgICAgZm9udC1zaXplOiA2Mi41JSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuICAvL0BtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjFweCl7XHJcbiAgLy8gIEBtZWRpYSAobWluLWFzcGVjdC1yYXRpbzogNC8zKSB7XHJcbiAgLy8gICAgZm9udC1zaXplOiBjYWxjKDAuNjI1dncgKiAuOTUpICFpbXBvcnRhbnQ7XHJcbiAgLy8gIH1cclxuICAvLyAgQG1lZGlhIChtaW4tYXNwZWN0LXJhdGlvOiAxNy8xMCkge1xyXG4gIC8vICAgIGZvbnQtc2l6ZTogY2FsYygwLjYyNXZ3ICogMS4wMykgIWltcG9ydGFudDtcclxuICAvLyAgfVxyXG4gIC8vfVxyXG59XHJcblxyXG5he1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBjb2xvcjogJGNvbG9yLWxpbms7XHJcbiAgJjpob3ZlcntcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuLnZpc2libGV7b3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDt9XHJcblxyXG4uZnVsbHdpZHRoe1xyXG4gIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcclxuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxufVxyXG4uaGFsZndpZHRoe1xyXG4gIHdpZHRoOiA1MCUhaW1wb3J0YW50O1xyXG59XHJcbi5mdWxsaGVpZ2h0e1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBtaW4taGVpZ2h0OiAxMDAlO1xyXG59XHJcbi50cnVuY2F0ZXtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbn1cclxuXHJcbmltZ3tcclxuICAmLm5vcm1hbHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWF4LXdpZHRoOiBub25lO1xyXG4gIH1cclxuICAmLnJlc3BvbnNpdmV7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5pbWctZmx1aWR7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uaW1nLXJvdW5kZWR7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbn1cclxuXHJcbi5sZWZ0e2Zsb2F0OiBsZWZ0IWltcG9ydGFudDt9XHJcbi5yaWdodHtmbG9hdDogcmlnaHQhaW1wb3J0YW50O31cclxuLnB1bGwtbGVmdCwucHVsbC1yaWdodHtmbG9hdDogbm9uZSFpbXBvcnRhbnQ7fVxyXG5cclxuJWZsZXgtY2VudGVye1xyXG4gIEBpbmNsdWRlIGRpc3BsYXlGbGV4O1xyXG4gIEBpbmNsdWRlIGFsaWduSXRlbXNDZW50ZXI7XHJcbiAgQGluY2x1ZGUganVzdGlmeUNvbnRlbnRDZW50ZXI7XHJcbn1cclxuXHJcbi5mbGV4LWNlbnRlcntcclxuICBAZXh0ZW5kICVmbGV4LWNlbnRlcjtcclxufVxyXG5cclxuJWhpZGRlbntcclxuICBvcGFjaXR5OiAwO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuLy8gIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAuM3MgZWFzZSk7XHJcbn1cclxuJXZpc2libGV7XHJcbiAgb3BhY2l0eTogMTtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4vLyAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjNzIGVhc2UpO1xyXG5cclxufVxyXG5cclxuJWJvb3RyZXN7XHJcbiAgJjpmb2N1cywmLmZvY3Vze1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6MDtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxufSIsIiRmb250OiAnTWFuZGF0b3J5MjknO1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdNYW5kYXRvcnknO1xyXG4gIHNyYzpcclxuICB1cmwoJy4uL2ZvbnQvI3skZm9udH0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXHJcbiAgdXJsKCcuLi9mb250LyN7JGZvbnR9LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxuICAvL3VybCgnLi4vZm9udC8jeyRmb250fS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbi8vQGZvbnQtZmFjZSB7XHJcbi8vICBmb250LWZhbWlseTogJ01hbmRhdG9yeSc7XHJcbi8vICBzcmM6IHVybCgnLi4vZm9udC8xL01hbmRhdG9yeS0yOS5lb3QnKTtcclxuLy8gIC8vc3JjOiBsb2NhbCgnTWFuZGF0b3J5IDI5JyksIGxvY2FsKCdNYW5kYXRvcnktMjknKSxcclxuLy91cmwoJy4uL2ZvbnQvMS9NYW5kYXRvcnktMjkuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuLy91cmwoJy4uL2ZvbnQvMS9NYW5kYXRvcnktMjkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXHJcbi8vdXJsKCcuLi9mb250LzEvTWFuZGF0b3J5LTI5LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxuLy8gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbi8vICBmb250LXN0eWxlOiBub3JtYWw7XHJcbi8vfVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdNYW5kYXRvcnktMTgnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250L01hbmRhdG9yeS0xOC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcclxuICB1cmwoJy4uL2ZvbnQvTWFuZGF0b3J5LTE4LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbi8vQGZvbnQtZmFjZSB7XHJcbi8vICBmb250LWZhbWlseTogJ01hbmRhdG9yeSc7XHJcbi8vICBzcmM6IHVybCgnLi4vZm9udC9tYW5kYXRvcnkvTWFuZGF0b3J5LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxyXG4vLyAgdXJsKCcuLi9mb250L21hbmRhdG9yeS9NYW5kYXRvcnkud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG4vLyAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuLy8gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuLy8gIGZvbnQtZGlzcGxheTogc3dhcDtcclxuLy99XHJcbi8vXHJcbi8vQGZvbnQtZmFjZSB7XHJcbi8vICBmb250LWZhbWlseTogJ01hbmRhdG9yeSc7XHJcbi8vICBzcmM6IHVybCgnLi4vZm9udC9tYW5kYXRvcnkvTWFuZGF0b3J5LTE4LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxyXG4vLyAgdXJsKCcuLi9mb250L21hbmRhdG9yeS9NYW5kYXRvcnktMTgud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG4vLyAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuLy8gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuLy8gIGZvbnQtZGlzcGxheTogc3dhcDtcclxuLy99XHJcbi8vXHJcbi8vQGZvbnQtZmFjZSB7XHJcbi8vICBmb250LWZhbWlseTogJ01hbmRhdG9yeSc7XHJcbi8vICBzcmM6IHVybCgnLi4vZm9udC9tYW5kYXRvcnkvTWFuZGF0b3J5Mjkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXHJcbi8vICB1cmwoJy4uL2ZvbnQvbWFuZGF0b3J5L01hbmRhdG9yeTI5LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcclxuLy8gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbi8vICBmb250LXN0eWxlOiBub3JtYWw7XHJcbi8vICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbi8vfVxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ1NpbXBsZXJQcm9fVjMnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250L1NpbXBsZXJQcm9fVjMtUmVndWxhci5lb3QnKTtcclxuICBzcmM6IGxvY2FsKCdTaW1wbGVyUHJvX1YzIFJlZ3VsYXInKSwgbG9jYWwoJ1NpbXBsZXJQcm9fVjMtUmVndWxhcicpLFxyXG4gIHVybCgnLi4vZm9udC9TaW1wbGVyUHJvX1YzLVJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICB1cmwoJy4uL2ZvbnQvU2ltcGxlclByb19WMy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxyXG4gIHVybCgnLi4vZm9udC9TaW1wbGVyUHJvX1YzLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ1NpbXBsZXJQcm9fVjMnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250L1NpbXBsZXJQcm9fVjMtQm9sZC5lb3QnKTtcclxuICBzcmM6IGxvY2FsKCdTaW1wbGVyUHJvX1YzIEJvbGQnKSwgbG9jYWwoJ1NpbXBsZXJQcm9fVjMtQm9sZCcpLFxyXG4gIHVybCgnLi4vZm9udC9TaW1wbGVyUHJvX1YzLUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICB1cmwoJy4uL2ZvbnQvU2ltcGxlclByb19WMy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxyXG4gIHVybCgnLi4vZm9udC9TaW1wbGVyUHJvX1YzLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG4iLCJAaW1wb3J0IFwiYW5pbWF0ZVwiO1xyXG5AaW1wb3J0IFwiZm9udGZhY2UvX2luZGV4XCI7XHJcbkBpbXBvcnQgXCJ0eXBvXCI7XHJcbi8vQGltcG9ydCBcImljb25cIjtcclxuQGltcG9ydCBcImxheW91dFwiO1xyXG5AaW1wb3J0IFwiZm9ybS9faW5kZXhcIjtcclxuQGltcG9ydCBcIm5hdlwiO1xyXG5AaW1wb3J0IFwibW9kYWxcIjtcclxuQGltcG9ydCBcInNlY3Rpb25cIjtcclxuQGltcG9ydCBcImJveFwiO1xyXG5AaW1wb3J0IFwiYnRuXCI7XHJcbkBpbXBvcnQgXCJzbGlkZVwiO1xyXG5AaW1wb3J0IFwicGFnaW5hdGlvblwiO1xyXG5cclxuQGltcG9ydCBcInNob3djYXNlXCI7XHJcbkBpbXBvcnQgXCJwcm9ncmFtXCI7XHJcblxyXG5AaW1wb3J0IFwidGhlbWVcIjtcclxuLy9AaW1wb3J0IFwid29vY29tbWVyY2VcIjtcclxuLy9AaW1wb3J0IFwidGFic1wiO1xyXG4vL0BpbXBvcnQgXCJicmVhZGNydW1ic1wiO1xyXG4vL0BpbXBvcnQgXCJhY2NvcmRpb25cIjsiLCIub3MtYW5pbWF0aW9uLCAub3MtYW5pbWF0aW9uLWFsd2F5cyB7XHJcbiAgb3BhY2l0eTogMDtcclxuICAmLmFuaW1hdGVke29wYWNpdHk6IDE7fVxyXG4gIEBhdC1yb290IC5hY3RpdmUgJntcclxuICAgIC8vb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLy5hbmltYXRlZCwuYW5pbWF0ZWRXb3cge1xyXG4vLyAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzO1xyXG4vLyAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuLy8gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuLy8gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XHJcbi8vfVxyXG5cclxuLmFuaW1hdGVkXHJcbi8vLC5hY3RpdmUgLm9zLWFuaW1hdGlvblxyXG57XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XHJcbn1cclxuXHJcbi5hbmltYXRlZC5pbmZpbml0ZSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxufVxyXG5cclxuLmFuaW1hdGVkLmhpbmdlIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcclxufVxyXG4vKiAuZmFkZU91dCBpcyBzdHlsZSB0YWtlbiBmcm9tIEFuaW1hdGlvbi5jc3MgYW5kIHRoaXMgaXMgaG93IGl0IGxvb2tzIGluIG93bC5jYXJvdXNlbC5jc3M6ICAqL1xyXG4uZmFkZU91dCAge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWUgOiBmYWRlT3V0ICA7XHJcbiAgYW5pbWF0aW9uLW5hbWUgOiBmYWRlT3V0ICA7XHJcbn1cclxuQC13ZWJraXQta2V5ZnJhbWVzICBmYWRlT3V0ICB7XHJcbiAgMCUge1xyXG4gICAgb3BhY2l0eSA6IDEgICA7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgb3BhY2l0eSA6IDAgICA7XHJcbiAgfVxyXG59XHJcbkBrZXlmcmFtZXMgIGZhZGVPdXQgIHtcclxuICAwJSB7XHJcbiAgICBvcGFjaXR5IDogMSAgIDtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBvcGFjaXR5IDogMCAgIDtcclxuICB9XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4ge1xyXG4gIGZyb20ge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcblxyXG4gIHRvIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XHJcbiAgZnJvbSB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgdG8ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbi5mYWRlSW4ge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcclxuICBhbmltYXRpb24tbmFtZTogZmFkZUluO1xyXG59XHJcblxyXG4ucHJvZ3Jlc3MgIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lIDogcHJvZ3Jlc3M7XHJcbiAgYW5pbWF0aW9uLW5hbWUgOiBwcm9ncmVzcztcclxufVxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgIHByb2dyZXNzICB7XHJcbiAgMCUge1xyXG4gICAgd2lkdGggOiAwO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIHdpZHRoIDogMTAwJTtcclxuICB9XHJcbn1cclxuQGtleWZyYW1lcyAgcHJvZ3Jlc3MgIHtcclxuICAwJSB7XHJcbiAgICB3aWR0aCA6IDA7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgd2lkdGggOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcclxuICBmcm9tIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcclxuICB9XHJcblxyXG4gIHRvIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uZmFkZUluRG93biB7XHJcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XHJcbiAgZnJvbSB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcclxuICB9XHJcblxyXG4gIHRvIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uZmFkZUluTGVmdCB7XHJcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xyXG4gIGZyb20ge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmZhZGVJblJpZ2h0IHtcclxuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmFkZUluVXAge1xyXG4gIGZyb20ge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDMwJSwgMCk7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmZhZGVJblVwIHtcclxuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXA7XHJcbn0iLCJAaW1wb3J0IFwiZm9udC1hd2Vzb21lXCI7XHJcblxyXG5AbWl4aW4gaWNvbm1vb24oKXtcclxuICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xyXG4gIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcclxuICBzcGVhazogbm9uZTtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuXHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cclxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ2ljb21vb24nO1xyXG4gIC8vc3JjOiAgdXJsKCcuLi9mb250L2ljb21vb24uZW90PzdzcjgxMicpO1xyXG4gIHNyYzogdXJsKCcuLi9mb250L2ljb21vb24udHRmPzhzcjgxMicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcclxuICB1cmwoJy4uL2ZvbnQvaWNvbW9vbi53b2ZmPzhzcjgxMicpIGZvcm1hdCgnd29mZicpLFxyXG4gIHVybCgnLi4vZm9udC9pY29tb29uLnN2Zz84c3I4MTIjaWNvbW9vbicpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSwuaWNvbm1vb24ge1xyXG4gIEBpbmNsdWRlIGljb25tb29uKCk7XHJcbn1cclxuIiwiLyohXHJcbiAqIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMyBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbVxyXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKVxyXG4gKi9cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBCcmFuZHMnO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGZvbnQtZGlzcGxheTogYmxvY2s7XHJcbiAgc3JjOiB1cmwoXCIuLi9mb250L3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90XCIpO1xyXG4gIHNyYzogdXJsKFwiLi4vZm9udC93ZWJmb250cy9mYS1icmFuZHMtNDAwLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXHJcbiAgdXJsKFwiLi4vZm9udC93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gIHVybChcIi4uL2ZvbnQvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXHJcbiAgdXJsKFwiLi4vZm9udC93ZWJmb250cy9mYS1icmFuZHMtNDAwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcclxuICB1cmwoXCIuLi9mb250L3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuc3ZnI2ZvbnRhd2Vzb21lXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxyXG5cclxuLmZhYiB7XHJcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBCcmFuZHMnO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuIiwicHtcclxuICAmOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgbWFyZ2luOiAwIDAgMnJlbTtcclxuICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcclxuICBsaW5lLWhlaWdodDogMS41O1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcclxuICAvL2ZvbnQtd2VpZ2h0OiA1MDA7XHJcblxyXG59XHJcblxyXG5zdHJvbmd7XHJcbiAgLy9mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJvbGQ7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS10aXRsZTI7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xyXG59XHJcblxyXG5pe1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAmW2NsYXNzKj1cImljb24tXCJdLCZbY2xhc3MqPVwiZmEtXCJdLCYuZmEsJi5mYWJ7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuYXtcclxuICAmOmhvdmVyLCY6Zm9jdXN7Y29sb3I6ICRjb2xvci1saW5rLWFjdGl2ZTt9XHJcbiAgLy9AaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIC4ycyk7XHJcbiAgdHJhbnNpdGlvbjogY29sb3IgLjI1cztcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbmgxLGgyLGgzLGg0LGg1LGg2e1xyXG4gIC8vY29sb3I6ICRjb2xvci1oZWFkaW5nO1xyXG4gIC8vZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRpdGxlO1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XHJcblxyXG59XHJcblxyXG5oMXtmb250LXNpemU6IDMuNnJlbTt9XHJcbmgye2ZvbnQtc2l6ZTogM3JlbTt9XHJcbmgze2ZvbnQtc2l6ZTogMi40cmVtO31cclxuaDR7Zm9udC1zaXplOiAycmVtO31cclxuXHJcbnN1cHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XHJcbiAgZm9udC1zaXplOiA2MCU7XHJcbn1cclxuXHJcbi8vJXNlY3Rpb24tdGl0bGV7XHJcbi8vICBAZXh0ZW5kICV0aXRsZTtcclxuLy8gIGZvbnQtc2l6ZTogNC41cmVtO1xyXG4vLyAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuLy8gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbi8vICBsaW5lLWhlaWdodDogMS4xO1xyXG4vL31cclxuXHJcbiV0aXRsZXtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRpdGxlO1xyXG59XHJcbiV0aXRsZTJ7XHJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS10aXRsZTI7XHJcbn1cclxuXHJcbi5zZWN0aW9uLXRpdGxlLCVzZWN0aW9uLXRpdGxle1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAxO1xyXG4gIGZvbnQtc2l6ZTogNC41cmVtO1xyXG4gIC8vZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRpdGxlO1xyXG4gIGNvbG9yOiAkY29sb3ItaGVhZGluZztcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgJi5tLWJvcmRlcntcclxuICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAuNzVyZW07XHJcbiAgfVxyXG5cclxuICAmLm0tZ3JvdXB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxuICB9XHJcblxyXG4gICYubS1wcmltYXJ5e1xyXG4gICAgY29sb3I6I0VCNUQ1OTtcclxuICB9XHJcblxyXG59XHJcblxyXG4uYXJ0aWNsZS10aXRsZXtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTtcclxuICBmb250LXNpemU6IDZyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRpdGxlO1xyXG4gIGNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5O1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG59XHJcblxyXG5cclxuLmNvbHVtbi1saXN0LS0ye1xyXG4gIEBpbmNsdWRlIGNvbHVtbi1jb3VudCgyKTtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgQGluY2x1ZGUgY29sdW1uLWNvdW50KDEpO1xyXG4gIH1cclxufVxyXG5cclxuLmFydGljbGV7XHJcbiAgcHtcclxuICB9XHJcbn1cclxuXHJcblxyXG4udGV4dC0tZ3JlZW57Y29sb3I6ICRjb2xvci1ncmVlbjt9XHJcbi50ZXh0LS1waW5re2NvbG9yOiRjb2xvci1waW5rO30iLCJAaW1wb3J0IFwiaGVhZGVyXCI7XHJcbkBpbXBvcnQgXCJmb290ZXJcIjtcclxuXHJcbmJvZHl7XHJcbn1cclxuXHJcbi5sLW1haW57XHJcbiAgcGFkZGluZzogMDtcclxuICAvL3BhZGRpbmctYm90dG9tOiA7XHJcbn1cclxuXHJcbi5jb250YWluZXIsLmNvbnRhaW5lci1mbHVpZHtcclxuICBtYXgtd2lkdGg6ICRjb250YWluZXItd2lkdGg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cmVtO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVyZW07XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cclxuICAmLS1uYXJyb3d7XHJcbiAgfVxyXG5cclxuICAmLS1wYWRkaW5ne1xyXG4gICAgLy9wYWRkaW5nLWxlZnQ6IDMwcHg7XHJcbiAgICAvL3BhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcclxuXHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjVweCl7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDByZW07XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcmVtO1xyXG4gICAgPiAucm93e1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgID4uY29sdW1ue1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLnJvd3tcclxuICAmOmJlZm9yZSwmOmFmdGVye1xyXG4gICAgLy9kaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAvL3BhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gIC8vcGFkZGluZy1yaWdodDogMS41cmVtO1xyXG4gIG1heC13aWR0aDogJGNvbnRhaW5lci13aWR0aDtcclxuXHJcbiAgJi0tbmFycm93e1xyXG4gICAgbWFyZ2luLWxlZnQ6IC02cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC02cHg7XHJcbiAgICA+LmNvbCxbY2xhc3NePVwiY29sLVwiXSw+LmNvbHVtbntcclxuICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXdpZGV7XHJcbiAgICBtYXJnaW4tbGVmdDogLTMuMnJlbTtcclxuICAgIG1hcmdpbi1yaWdodDogLTMuMnJlbTtcclxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xyXG4gICAgPi5jb2wsW2NsYXNzXj1cImNvbC1cIl0sPi5jb2x1bW57XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMy4ycmVtO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzLjJyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLnN0aWNreS1jb250YWluZXIgKyAubC1tYWlue3Bvc2l0aW9uOiBzdGF0aWM7fVxyXG5cclxuLmwtd3JhcHBlcntcclxuICBiYWNrZ3JvdW5kOiAkYmctY29sb3I7XHJcbiAgLy9iYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2NvbW1vbi9iZy5wbmcpIDAgMCByZXBlYXQteDtcclxuICAvL2JhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1pbi1oZWlnaHQ6IDElO1xyXG4gIGhlaWdodDogYXV0bztcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICYubWVudS1pcy1vcGVue1xyXG4gICAgJjphZnRlcntcclxuXHJcbiAgICB9XHJcbiAgfVxyXG4gIG1haW57XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcbiAgQGluY2x1ZGUgZGlzcGxheUZsZXg7XHJcbiAgQGluY2x1ZGUgZmxleERpcmVjdGlvbkNvbCgpO1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG4gIC5sLW1haW57XHJcbiAgICAvL0BpbmNsdWRlIGZsZXgxLTEtMTAwO1xyXG4gICAgZmxleDogMTtcclxuICAgIC13ZWJraXQtZmxleDogMSAxIGF1dG87XHJcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XHJcbiAgICBmbGV4OiAxIDEgYXV0bztcclxuICAgIC13ZWJraXQtYWxpZ24tc2VsZjogc3RyZXRjaDtcclxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2g7XHJcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xyXG4gIH1cclxufVxyXG5cclxuLmwtaGVhZGVye1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4ubC1mb290ZXJ7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmFzaWRlLW1haW4tbWVudXtcclxuICAmLmlzLWFjdGl2ZXtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgIC8vb3BhY2l0eTogMTtcclxuICB9XHJcbiAgd2lsbC1jaGFuZ2U6IC13ZWJraXQtdHJhbnNmb3JtO1xyXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHotaW5kZXg6IDE5OTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuOSk7XHJcbiAgLy9iYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAzMjBweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgcGFkZGluZzogM3JlbTtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgLy9vcGFjaXR5OiAwO1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSksXHJcbiAgdmlzaWJpbGl0eSAwLjVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSxcclxuICBvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XHJcbiAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLDAlLDApO1xyXG5cclxuICAvLyAgbmF2XHJcbiAgJl9fbmF2e1xyXG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgQGluY2x1ZGUgZGlzcGxheUZsZXg7XHJcbiAgICBAaW5jbHVkZSBhbGlnbkl0ZW1zQ2VudGVyO1xyXG4gICAgLy9AaW5jbHVkZSBqdXN0aWZ5Q29udGVudENlbnRlcjtcclxuICAgIHVse1xyXG4gICAgICAvL3RleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGxpe1xyXG4gICAgICAgIG1hcmdpbjogLjJlbSAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgIGF7bWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICAmOmhvdmVyLCAmLmlzLWFjdGl2ZXtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXNlY29uZGFyeTtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XHJcbiAgICAgICAgICAvL2xldHRlci1zcGFjaW5nOiAwLjJlbTtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJ2aDtcclxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgICAgb3V0bGluZTogMDtcclxuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcclxuXHJcbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpe1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDI2cHg7XHJcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA0MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KXtcclxuICAgICAgICAgICAgLy90ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDV2dztcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMi41dmg7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA0MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKXtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX193cnB7XHJcbiAgICBwYWRkaW5nLXRvcDogNnJlbTtcclxuICB9XHJcblxyXG4gIC5iLWhlYWRlcl9fc2VhcmNoe1xyXG4gICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMnZoO1xyXG5cclxuICAgICYtZm9ybXtcclxuICAgICAgLmJ0bi1zZWFyY2h7XHJcbiAgICAgICAgJjpob3Zlcntjb2xvcjogJGNvbG9yLXNlY29uZGFyeTt9XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZW51LWljb24uYnVyZ2Vye1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDEuNXJlbTt0b3A6MS41cmVtO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBzcGFue2NvbG9yOiAjZmZmO31cclxuICAgICY6YmVmb3JlLCY6YWZ0ZXJ7Y29sb3I6ICNmZmY7fVxyXG4gIH1cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpe1xyXG4gICAgJl9fbmF2e1xyXG4gICAgICBwYWRkaW5nLXRvcDogNXJlbTtcclxuICAgIH1cclxuICB9XHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpe1xyXG4gICAgJl9fbmF2e1xyXG4gICAgICBwYWRkaW5nLXRvcDogMnZoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5vdmVybGF5e1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHotaW5kZXg6IDE5OTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBvcGFjaXR5OiAwO1xyXG4gIEBhdC1yb290IC5tZW51LWlzLW9wZW4gJntcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xyXG4gIH1cclxuICBAYXQtcm9vdCAuc2lkZWJhci1pcy1vcGVuICZ7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcclxuICB9XHJcbn1cclxuIiwiLmItaGVhZGVye1xyXG4gICYubS1maXhlZHtcclxuXHJcbiAgICAmOmFmdGVye1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzJDMUMyMSAwJSwgcmdiYSgjMkMxQzIxLC45KSAxNyUsIHJnYmEoIzJDMUMyMSwuNykgNTclLCByZ2JhKCMyQzFDMjEsMCkgMTAwJSk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgei1pbmRleDogOTk7XHJcbiAgICBsZWZ0OiAwO3RvcDowO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBhbmltYXRpb246IGZhZGVJbiAuNHMgZWFzZTtcclxuICAgIC8vYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgLmItbG9nb3tcclxuICAgICAgaW1ne1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDlyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYi1oZWFkZXJfX3Jvd3tcclxuICAgICAgcGFkZGluZy10b3A6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmItaGVhZGVyX193cnA+LnJvd3tcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5iLXN1Ym1lbnV7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xyXG4gICAgICBvcGFjaXR5OiAwIWltcG9ydGFudDtcclxuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuYi1oZWFkZXJfX3Jvd3tcclxuICAgICAgJjphZnRlcntcclxuICAgICAgICAvL2NvbnRlbnQ6ICcnO1xyXG4gICAgICAgIC8vd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHJpZ2h0OiAxLjVyZW07XHJcbiAgICAgIH1cclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIH1cclxuICB9XHJcbiAgJi5tLWFic3tcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6MDt0b3A6MDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgei1pbmRleDogOTk7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAuYi1sb2dve1xyXG4gICAgICAvL2JhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcclxuICAgICAgLy9iYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGxpZ2h0ZW47XHJcbiAgICB9XHJcbiAgICAuYi1oZWFkZXJfX3dycD4ucm93e1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICAuc3RpY2t5LCYuc3RpY2t5e1xyXG4gICAgJi5pcy1zdHVja3tcclxuICAgICAgLy9iYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmctaGVhZGVyO1xyXG4gICAgICAvL3BhZGRpbmc6IDA7XHJcbiAgICAgIC5idXJnZXJ7XHJcbiAgICAgICAgLy9zcGFuLCY6YmVmb3JlLCY6YWZ0ZXJ7Y29sb3I6ICRjb2xvci10ZXh0O31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuM3MgZWFzZSwgcGFkZGluZyAuM3MgZWFzZTtcclxuICB9XHJcblxyXG4gIC8vZm9udC1zaXplOiAxMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItYmctaGVhZGVyO1xyXG4gIGNvbG9yOiAkY29sb3ItaGVhZGVyO1xyXG4gIC8vdHJhbnNpdGlvbjogLjVzO1xyXG5cclxuICAqe1xyXG4gICAgY29sb3I6ICRjb2xvci1oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAmX193cnB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIC8vcGFkZGluZy10b3A6IDEuOXJlbTtcclxuICAgIC8vcGFkZGluZy1ib3R0b206IDEuNXJlbTtcclxuICB9XHJcblxyXG4gICZfX3Jvd3tcclxuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Upe1xyXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5iLWxvZ297XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGltZ3tcclxuICAgICAgbWF4LXdpZHRoOiAyNS43cmVtO1xyXG4gICAgICBoZWlnaHQ6IDExLjlyZW07XHJcbiAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX21lbnV7XHJcbiAgICAvL3RleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIC8vZmxleDogMTtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KXtcclxuICAgICAgQGluY2x1ZGUgZGlyZWN0aW9uKHJ0bCl7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19tZW51LW5hdntcclxuICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS10aXRsZTtcclxuICAgIC8vQGV4dGVuZCAldGl0bGUyO1xyXG5cclxuICAgIHVse1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbiAgICAgIC8vanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG4gICAgICBsaXtcclxuICAgICAgICAmLmJ0bi1saW5re1xyXG4gICAgICAgICAgPmF7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDBlbSAuNWVtIC4xMmVtO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggY3VycmVudENvbG9yO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXtcclxuICAgICAgICAgIHNwYW57XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDgwJTtcclxuICAgICAgICAgICAgb3BhY2l0eTogLjg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWxpbmstYWN0aXZlO1xyXG4gICAgICAgICAgICAvL2ZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgIC8vc3Bhbntmb250LXdlaWdodDogbm9ybWFsO31cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpbmNsdWRlIG5vZGVjb3I7XHJcbiAgICAgICAgICBwYWRkaW5nLXRvcDogLjNlbTtcclxuXHJcbiAgICAgICAgICAmLmJ0bi1saW5re1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAuM2VtIC41ZW0gMDtcclxuICAgICAgICAgICAgcGFkZGluZzogMGVtIC41ZW0gLjEyZW07XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCBjdXJyZW50Q29sb3I7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgICAvL21hcmdpbi1sZWZ0OiA1cmVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaXMtYWN0aXZle1xyXG4gICAgICAgID5he1xyXG4gICAgICAgICAgcGFkZGluZzogMGVtIC41ZW0gLjEyZW07XHJcbiAgICAgICAgICAvL2JveC1zaGFkb3c6IDAgMCAwIDJweCBjdXJyZW50Q29sb3I7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLWxpbmstYWN0aXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmhhcy1zdWJtZW51e1xyXG4gICAgICAgIC8vJjpob3ZlciwmLmhvdmVyLFxyXG4gICAgICAgICYuaXMtYWN0aXZle1xyXG4gICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgPmF7XHJcbiAgICAgICAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgID5he1xyXG4gICAgICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgICAvL2NvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDRweDtcclxuICAgICAgICAgICAgICB3aWR0aDogMCU7XHJcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogLjNzIGVhc2U7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1saW5rLWFjdGl2ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5iLXN1Ym1lbnV7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgICAgICB1bHtcclxuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYub24taG92ZXJ7XHJcbiAgICAgICAgICA+YXtcclxuICAgICAgICAgICAgJjphZnRlcntcclxuICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgLy92aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiA4cmVtO1xyXG4gICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgPmF7fVxyXG4gICAgICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIC5iLXN1Ym1lbnV7XHJcbiAgICAgICAgICB6LWluZGV4OiA5OTtcclxuICAgICAgICAgIC8vZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjFzIGVhc2UsIG1hcmdpbiAuMnMgZWFzZSwgdmlzaWJpbGl0eSAuMXMgZWFzZTtcclxuICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAvL3RyYW5zaXRpb24tZGVsYXk6IC4ycztcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEzcmVtIC0gMy40cmVtKTtcclxuICAgICAgICAgIG1heC13aWR0aDogJGNvbnRhaW5lci13aWR0aCAtIDEzcmVtIC0gMy40cmVtO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gICAgICAgICAgdWx7XHJcbiAgICAgICAgICAgIC8vb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgLy90cmFuc2l0aW9uOiAuNHMgZWFzZTtcclxuICAgICAgICAgICAgLy90cmFuc2l0aW9uLWRlbGF5OiAwLjA1cztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDBweCl7XHJcbiAgICAgICAgICAgIHdpZHRoOiAkY29udGFpbmVyLXdpZHRoIC0gMTByZW0gLSA5cmVtIC0gM3JlbTtcclxuICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41ZW07XHJcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogLjVlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmItc3VibWVudXtcclxuICAgICAgICBAZXh0ZW5kICV0aXRsZTI7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgYm9yZGVyOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcclxuXHJcbiAgICAgICAgJl9fbGlzdHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHVse1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxMDAlO1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgbGl7XHJcbiAgICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1oZWFkZXI7XHJcbiAgICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItaGVhZGVyO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuaXMtYWN0aXZle1xyXG4gICAgICAgICAgYXtjb2xvcjogJGNvbG9yLWhlYWRlcjt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICAmOmhvdmVyLCY6Zm9jdXMsJi5pcy1hY3RpdmV7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItaGVhZGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9wYWRkaW5nLXRvcDogLjY1ZW07XHJcbiAgICAgICAgICAvL3BhZGRpbmctYm90dG9tOiAuM2VtO1xyXG4gICAgICAgICAgcGFkZGluZy10b3A6IC41ZW07XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjRlbTtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxMDAlO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlO1xyXG4gICAgICAgICAgLy90cmFuc2l0aW9uOiBub25lO1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAuM2VtO1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogLjNlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmPnVsPmxpe1xyXG4gICAgICAmOmhvdmVye1xyXG4gICAgICAgIC8vYXtjb2xvcjogJGNvbG9yLWxpbmstYWN0aXZlO31cclxuICAgICAgfVxyXG4gICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcclxuICAgICAgPmF7XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCBjdXJyZW50Q29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhZGRpbmc6IDBlbSAuNWVtIC4xMmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYi1zdWJtZW51e1xyXG4gICAgJl9fbGlzdHtcclxuICAgICAgbGl7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19sYW5ne1xyXG4gICAgJi1saW5rLGF7XHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1saW5rLWFjdGl2ZTtcclxuICAgICAgICAqe2NvbG9yOiBjdXJyZW50Q29sb3I7fVxyXG4gICAgICB9XHJcbiAgICAgIEBleHRlbmQgJXRpdGxlMjtcclxuICAgICAgQGluY2x1ZGUgbm9kZWNvcjtcclxuICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xyXG4gICAgICBAaW5jbHVkZSBkaXJlY3Rpb24ocnRsKXtcclxuICAgICAgICBAZXh0ZW5kICV0aXRsZTtcclxuICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fcmlnaHR7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICA+ICogKyAqe1xyXG4gICAgICAvL21hcmdpbi1sZWZ0OiAzcmVtO1xyXG4gICAgICAvL21hcmdpbi1pbmxpbmUtZW5kOiAzcmVtO1xyXG4gICAgICBAaW5jbHVkZSBkaXJlY3Rpb24oKXtcclxuICAgICAgICAvL21hcmdpbi1sZWZ0OiAzcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICA+KntcclxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpe1xyXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAzcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190aWNrZXRzLWJ0bntcclxuICAgICY6aG92ZXJ7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItbGluay1hY3RpdmUyO1xyXG4gICAgICAvLy5iLWhlYWRlcl9fdGlja2V0cy1idG4tYmd7fVxyXG4gICAgfVxyXG4gICAgY29sb3I6ICRjb2xvci15ZWxsb3c7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgPmltZ3tcclxuICAgICAgbWF4LWhlaWdodDogNS4ycmVtO1xyXG4gICAgfVxyXG4gICAgJi1iZ3tcclxuICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XHJcbiAgICAgIGZpbGw6Y3VycmVudENvbG9yO1xyXG4gICAgICBAaW5jbHVkZSBhYnNvbHV0ZVN0cmV0Y2g7XHJcbiAgICAgICp7XHJcbiAgICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcclxuICAgICAgICBmaWxsOmN1cnJlbnRDb2xvcjtcclxuICAgICAgfVxyXG4gICAgICAuc2hvdy1vbi1oZXtcclxuICAgICAgICB3aWR0aDogOTclO1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgJl9fcm93e1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bil7XHJcbiAgICAuYi1sb2dve1xyXG4gICAgICBpbWd7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19tZW51LCZfX3JpZ2h0e1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgJl9fcm93e1xyXG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7XHJcbiAgICAmX19yb3d7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcblxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDI1cHgpe1xyXG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xyXG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcclxuICAgIC8vYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkO1xyXG5cclxuICAgICZfX3Jvd3tcclxuICAgICAgJjphZnRlcntcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4uaXMtbWVudS1vcGVue1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIC5idXJnZXJ7ei1pbmRleDogMTAxO31cclxuXHJcbiAgLmItaGVhZGVye1xyXG4gICAgJl9fY2FsbGJhY2t7XHJcbiAgICAgIHotaW5kZXg6IDEwMTtcclxuICAgIH1cclxuICAgICZfX2xvZ297XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgei1pbmRleDogMTAxO1xyXG4gICAgICAvL2Rpc3BsYXk6IGJsb2NrIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgICZfX21lbnV7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrIWltcG9ydGFudDtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB0b3A6MDtsZWZ0OjA7XHJcbiAgICAgIHdpZHRoOjEwMCU7XHJcbiAgICAgIGhlaWdodDoxMDAlO1xyXG4gICAgICB6LWluZGV4OiAxMDA7XHJcbiAgICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICAgIHBhZGRpbmctdG9wOiAxMDBweDtcclxuICAgICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3ItdGV4dCwxKTtcclxuXHJcbiAgICAgIC5iLWhlYWRlcl9fbGFuZ3tcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAycmVtO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19tZW51LW5hdntcclxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcclxuICAgICAgLy9wYWRkaW5nLXRvcDogMTByZW07XHJcbiAgICAgIC8vcGFkZGluZy1ib3R0b206IDEwcmVtO1xyXG4gICAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XHJcbiAgICAgID51bHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIC8vanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgLy9kaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGxpe1xyXG4gICAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAvL3BhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcclxuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICArIGxpe1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICBmb250LXNpemU6IDMuODV2dztcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XHJcbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjVweCl7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAuaGFzLXN1Ym1lbnV7XHJcbiAgICAgICAgICA+YTphZnRlcntcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vJjpob3ZlciwgJjpmb2N1cyxcclxuICAgICAgICAgICYuaXMtYWN0aXZle1xyXG4gICAgICAgICAgICAuYi1zdWJtZW51e2Rpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5iLXN1Ym1lbnV7XHJcblxyXG4gICAgICAgICAgdG9wOjA7XHJcbiAgICAgICAgICBib3JkZXI6bm9uZTtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICAgICAgJl9fbGlzdHtcclxuICAgICAgICAgICAgLy93aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgLy9tYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBsaXtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIi5iLWZvb3RlcntcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3ItYmctZm9vdGVyO1xyXG4gIGNvbG9yOiAkY29sb3ItZm9vdGVyO1xyXG4gIGZvbnQtc2l6ZTogJGZvb3Rlci1zaXplO1xyXG4gIHBhZGRpbmc6ICRmb290ZXItcGFkZGluZy10b3AgMCAkZm9vdGVyLXBhZGRpbmctYm90dG9tO1xyXG5cclxuICBwe1xyXG4gICAgZm9udC1zaXplOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgKntcclxuICAgIGNvbG9yOiAkY29sb3ItZm9vdGVyO1xyXG4gIH1cclxuXHJcbiAgLmItbG9nby0tZm9vdGVye1xyXG4gICAgbWF4LXdpZHRoOiAyMHJlbTtcclxuICB9XHJcblxyXG4gIC5iLXNvY2lhbC1pbmxpbmV7XHJcbiAgICBbY2xhc3MqPVwiaWNvblwiXSxbY2xhc3MqPVwiZmFcIl17XHJcbiAgICAgIGZvbnQtc2l6ZTogMy4zcmVtO1xyXG4gICAgICAvL3dpZHRoOiAxZW07XHJcbiAgICAgIC8vaGVpZ2h0OiAxZW07XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3NvY3tcclxuICAgIG1heC13aWR0aDogMjVyZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbiAgICB1bHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIC8vcGFkZGluZy10b3A6IDJyZW07XHJcbiAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAvL21hcmdpbi1sZWZ0OiAtN3B4O1xyXG4gICAgICAvL21hcmdpbi1yaWdodDogLTdweDtcclxuICAgICAgbGl7XHJcbiAgICAgICAgJjpsYXN0LW9mLXR5cGV7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgLy9mbGV4OjE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3RvcHtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICB3aWR0aDogMTUwdnc7XHJcbiAgICAgIGxlZnQ6IC0yNXZ3O1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgfVxyXG4gICAgbWFyZ2luLWJvdHRvbTogNnJlbTtcclxuICAgIC8vcGFkZGluZy1sZWZ0OiA2LjZyZW0gLSAxLjVyZW07XHJcbiAgICAvL3BhZGRpbmctcmlnaHQ6IDYuNnJlbSAtIDEuNXJlbTtcclxuXHJcbiAgICAmICsgLnJvdy0td2lkZXtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSl7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDhyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAmX19zdHJpcGV7XHJcblxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIG1hcmdpbi1sZWZ0OiAtNnJlbTtcclxuICAgIG1hcmdpbi1yaWdodDogLTZyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiAjNTZCRjcyO1xyXG4gICAgPmltZ3tcclxuICAgICAgZmxleC1iYXNpczogMDtcclxuICAgICAgbWF4LXdpZHRoOiA2LjVyZW07XHJcbiAgICAgIG1hcmdpbjogLTFweDtcclxuICAgICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGV7XHJcbiAgICBAZXh0ZW5kIC5zZWN0aW9uLXRpdGxlO1xyXG4gICAgQGV4dGVuZCAuc2VjdGlvbi10aXRsZS5tLWJvcmRlcjtcclxuICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOjAuM2VtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICB9XHJcblxyXG4gICZfX2luZm97XHJcbiAgICA+IGRpdiArIGRpdntcclxuICAgICAgbWFyZ2luLXRvcDogNnJlbTtcclxuICAgIH1cclxuXHJcbiAgICBwe1xyXG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIH1cclxuXHJcbiAgICBhe1xyXG4gICAgICBAaW5jbHVkZSBub2RlY29yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW5mby1jb250YWN0e1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgfVxyXG5cclxuICAmX19uYXYtbGlzdHtcclxuICAgIGxpe1xyXG4gICAgICBhe1xyXG4gICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuOHJlbTtcclxuICAgICAgICBAaW5jbHVkZSBub2RlY29yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19sb2dvLWxpc3R7XHJcbiAgICAmLl9ib3JkZXJ7XHJcbiAgICAgIGJvcmRlcjogNnB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiA0cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRpc3BsYXk6IC1tcy1ncmlkO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcclxuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBncmlkLWF1dG8tY29sdW1uczogMWZyO1xyXG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiAzcmVtO1xyXG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiA4JTtcclxuICAgIGdyaWQtcm93LWdhcDogMS42cmVtO1xyXG4gICAgLW1zLWdyaWQtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnI7XHJcbiAgICAvLy1tcy1ncmlkLXJvd3M6IGF1dG8gYXV0bztcclxuICAgIC8vZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmNmOWU4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDEuNnJlbSAzcmVtO1xyXG4gICAgPmltZ3tcclxuICAgICAgJi5fd2lkZXtcclxuICAgICAgICAtbXMtZ3JpZC1yb3ctYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICAgICAgLW1zLWdyaWQtY29sdW1uOiBzcGFuIDE7XHJcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IHNwYW4gMTtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogMTtcclxuICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTtcclxuICAgICAgICAtbXMtZ3JpZC1yb3c6IHNwYW4gMTtcclxuICAgICAgICBncmlkLXJvdy1zdGFydDogc3BhbiAxO1xyXG4gICAgICAgIC1tcy1ncmlkLXJvdy1zcGFuOiAxO1xyXG4gICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAxO1xyXG4gICAgICB9XHJcbiAgICAgICYuX3V3aWRle1xyXG4gICAgICAgIC1tcy1ncmlkLXJvdy1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgICAgICAtbXMtZ3JpZC1jb2x1bW46IHNwYW4gMjtcclxuICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogc3BhbiAyO1xyXG4gICAgICAgIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiAyO1xyXG4gICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyO1xyXG4gICAgICAgIC1tcy1ncmlkLXJvdzogc3BhbiAxO1xyXG4gICAgICAgIGdyaWQtcm93LXN0YXJ0OiBzcGFuIDE7XHJcbiAgICAgICAgLW1zLWdyaWQtcm93LXNwYW46IDE7XHJcbiAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDE7XHJcbiAgICAgIH1cclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXBhcnRuZXJze1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogNi4zcmVtO1xyXG4gICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogJGNvbnRhaW5lci13aWR0aCAtIDIqNXJlbSAtIDIqMS41cmVtO1xyXG4gICAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzAwMDtcclxuICAgIH1cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJhY2tncm91bmQ6ICNGREYzREE7XHJcbiAgICAvL21hcmdpbi10b3A6IDYuM3JlbTtcclxuICAgIHBhZGRpbmctdG9wOiAxM3JlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cmVtO1xyXG5cclxuICAgIC5iLWZvb3Rlcl9fdG9we1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAmLnJvdz4uY29sdW1ue1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGltZ3tcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICAucm93LS1zZWN0aW9uPi5jb2x1bW4rLmNvbHVtbntcclxuICAgICAgbWFyZ2luLXRvcDogM3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KXtcclxuICAgICZfX3N0cmlwZXtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xyXG4gICAgfVxyXG4gICAgLnJvd3tcclxuICAgICAgPi5jb2x1bW4gKyAuY29sdW1ue1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgJl9fbmF2LWxpc3R7XHJcbiAgICAgIEBpbmNsdWRlIGNvbHVtbi1jb3VudCgyKTtcclxuICAgICAgKyBkaXZ7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fc29je1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICB1bHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgfVxyXG4gICAgICAuYi1zb2NpYWwtaW5saW5le1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGxpe1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY29weXtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmX19sb2dvLWxpc3R7XHJcbiAgICAgIC1tcy1ncmlkLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDI1cHgpe1xyXG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xyXG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcclxuICAgIC5yb3ctLXdpZGV7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSIsIkBpbXBvcnQgXCJmb3JtXCI7XHJcbi8vQGltcG9ydCBcImNoZWNrYm94XCI7XHJcbi8vQGltcG9ydCBcInJhZGlvXCI7IiwiJGlucHV0LXdpZHRoOiAxN3B4O1xyXG4kaW5wdXQtaGVpZ2h0OiA2cmVtO1xyXG4kbGFiZWwtcGFkZGluZzogJGlucHV0LXdpZHRoICsgOHB4O1xyXG4kcmFkaW8tZW1wdHktY29sb3I6ICRjb2xvci1ib3JkZXI7XHJcbiRyYWRpby1maWxsLWNvbG9yOiAkY29sb3ItYmx1ZTtcclxuJGlucHV0LWRpc2FibGVkLWNvbG9yOiAkY29sb3ItZ3JleTtcclxuJGlucHV0LWRpc2FibGVkLXNvbGlkLWNvbG9yOiAkY29sb3ItZ3JleTtcclxuJGlucHV0LWJnLWNvbG9yOiAkY29sb3ItYm9yZGVyO1xyXG4kc2Vjb25kYXJ5LWNvbG9yOiAkY29sb3Itb3JhbmdlO1xyXG5cclxuLy8gVGV4dCBpbnB1dHNcclxuaW5wdXRbdHlwZT10ZXh0XSxcclxuaW5wdXRbdHlwZT1wYXNzd29yZF0sXHJcbmlucHV0W3R5cGU9ZW1haWxdLFxyXG5pbnB1dFt0eXBlPXVybF0sXHJcbmlucHV0W3R5cGU9dGltZV0sXHJcbmlucHV0W3R5cGU9ZGF0ZV0sXHJcbmlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLFxyXG5pbnB1dFt0eXBlPXRlbF0sXHJcbmlucHV0W3R5cGU9bnVtYmVyXSxcclxuaW5wdXRbdHlwZT1zZWFyY2hdLFxyXG5pbnB1dFt0eXBlPWZpbGVdLFxyXG50ZXh0YXJlYSwud3BjZjctZm9ybS1jb250cm9sOm5vdCgud3BjZjctY2hlY2tib3gpOm5vdCgud3BjZjctcmFkaW8pXHJcbntcclxuICAvLyBHZW5lcmFsIFN0eWxlc1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyOiA2cHggc29saWQgJGNvbG9yLWJvcmRlci1pbnB1dDtcclxuICAvL2JvcmRlcjogbWVkaXVtIG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGhlaWdodDogJGlucHV0LWhlaWdodDtcclxuICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodDtcclxuICB3aWR0aDogMTAwJTtcclxuICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgZm9udC1zaXplOiAycmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgcGFkZGluZzogMCAxLjJyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICB0cmFuc2l0aW9uOiBib3JkZXIgLjNzIGVhc2UsIGJveC1zaGFkb3cgLjNzIGVhc2U7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIEBpbmNsdWRlIGZvcm0tcGxhY2Vob2xlcigpe1xyXG4gICAgY29sb3I6ICRjb2xvci1ib3JkZXItaW5wdXQ7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgLy9mb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgfVxyXG4gICY6aG92ZXIsJjpmb2N1c3tcclxuICAgIC8vYm94LXNoYWRvdzogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gIH1cclxuICAmLmlubGluZXtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxuICAmLmlzLWVycm9yLCAmLmhhcy1lcnJvcntcclxuICAgIGNvbG9yOiAkY29sb3ItcmVkLWZvcm07XHJcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1yZWQtZm9ybTtcclxuICAgIC5yZXF1aXJlZC1pY257b3BhY2l0eTogMTt9XHJcbiAgfVxyXG4gIEBhdC1yb290IC5oYXMtZXJyb3IgJntcclxuICAgICY6aG92ZXIsJjpmb2N1c3tcclxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCAjZTJlMmUyO1xyXG4gICAgfVxyXG4gICAgLnJlcXVpcmVkLWljbntvcGFjaXR5OiAxO31cclxuICAgIC8vYm9yZGVyLWNvbG9yOiAkY29sb3ItcmVkLWZvcm07XHJcbiAgfVxyXG4gICY6Zm9jdXMsJjphY3RpdmV7XHJcbiAgICAmLmlzLWVycm9yLCAmLmhhcy1lcnJvcntcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItcmVkLWZvcm07XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItcmVkLWZvcm07XHJcbiAgICB9XHJcbiAgICAvL2JveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAvL2JvcmRlcjogbWVkaXVtIG5vbmU7XHJcbiAgICAvL2JvcmRlci1jb2xvcjogI2ZmZjtcclxuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbiAgfVxyXG5cclxuICAmOmludmFsaWQ6Zm9jdXN7XHJcbiAgICArIC5yZXF1aXJlZC1pY257XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgICAvL2NvbG9yOiAkY29sb3ItcmVkLWZvcm07XHJcbiAgICAvL2JvcmRlci1jb2xvcjogJGNvbG9yLXJlZC1mb3JtO1xyXG4gIH1cclxuICAmOmludmFsaWQ6YWN0aXZle1xyXG4gICAgLy9ib3JkZXItY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gIH1cclxuICAmOnZhbGlkOmZvY3VzLCY6Zm9jdXN7XHJcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1wcmltYXJ5O1xyXG4gIH1cclxuXHJcbiAgJi5pcy1lcnJvcntcclxuICAgICY6Zm9jdXN7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGZvcm0tcGxhY2Vob2xlcigpe1xyXG4gICAgICAvL2ZvbnQtc2l6ZTogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuaW5wdXQtc21hbGx7XHJcbiAgICB3aWR0aDogMTNyZW07XHJcbiAgICBtYXgtd2lkdGg6IDEzcmVtO1xyXG4gIH1cclxuXHJcbiAgQGF0LXJvb3QgLnJvdy1maWVsZCAme1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4vL1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgIGJvcmRlci13aWR0aDogNHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQqMC44O1xyXG4gICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQqMC44O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmlucHV0Om5vdChbdmFsdWU9XCJcIl0pIHtcclxuICAvL2JveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbjo6LW1zLXJldmVhbCB7XHJcbiAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9ZmlsZV17XHJcbiAgLy9wYWRkaW5nLXRvcDogMS4xcmVtO1xyXG4gIHRleHQtaW5kZW50OiAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGNvbG9yOiAkY29sb3ItYmx1ZTtcclxuICBAYXQtcm9vdCAudG91Y2ggJntcclxuICAgIC8vQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1lZGl1bS1zY3JlZW4pe1xyXG4gICAgLy8gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgLy8gIHBhZGRpbmctdG9wOiA4cHg7XHJcbiAgICAvLyAgdGV4dC1pbmRlbnQ6IC04cHg7XHJcbiAgICAvL31cclxuICB9XHJcbn1cclxudGV4dGFyZWF7XHJcbiAgcGFkZGluZzogMS40cmVtO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIHJlc2l6ZTogbm9uZTtcclxuICBsaW5lLWhlaWdodDogMS4xO1xyXG4gIG1pbi1oZWlnaHQ6IDEzcmVtO1xyXG59XHJcblxyXG4uYXV0by13aWR0aHtcclxuICB3aWR0aDogYXV0bztcclxufVxyXG5cclxuaW5wdXRbdHlwZT10ZXh0XTo6LW1zLWNsZWFyIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5cclxubGFiZWx7XHJcbiAgJi5pcy1lcnJvcntcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgY29sb3I6ICRjb2xvci1yZWQtZm9ybTtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIH1cclxuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxufVxyXG5cclxuLmxhYmVse1xyXG4gIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xyXG59XHJcblxyXG4uc2VsZWN0LXdycHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgLy9iYWNrZ3JvdW5kOiB1cmwoLi4vaW1nLyk7XHJcbiAgJjpiZWZvcmV7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAxcmVtO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgICBAaW5jbHVkZSBpY29ubW9vbjtcclxuXHJcbiAgICBAaW5jbHVkZSBkaXJlY3Rpb24obHRyKXtcclxuICAgICAgbGVmdDogYXV0bztcclxuICAgICAgcmlnaHQ6IDFyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3R7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1pbnB1dDtcclxuICAgIC8vYm9yZGVyOiBtZWRpdW0gbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBwYWRkaW5nOiAwIDEuMnJlbTtcclxuXHJcbiAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XHJcbiAgICBAaW5jbHVkZSBkaXJlY3Rpb24obHRyKXtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAxLjJyZW07XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYXBwLWNhbGxiYWNrLWZvcm17XHJcbiAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pLC53cGNmNy1mb3JtLWNvbnRyb2w6bm90KC53cGNmNy1jaGVja2JveCk6bm90KC53cGNmNy1yYWRpbyl7XHJcbiAgICAmOmhvdmVyLCY6Zm9jdXN7XHJcbiAgICAgIC8vYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIC5idG57XHJcbiAgICAvL21hcmdpbi10b3A6IDFyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuZm9ybXtcclxuXHJcbiAgbGFiZWx7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgLy90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIH1cclxuXHJcbiAgLnJvdy1maWVsZHtcclxuICAgICYgKyAucm93LWZpZWxke1xyXG4gICAgICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnJvdy1maWVsZC0tYnRue1xyXG4gICAgLmJ0biwuYnV0dG9ue1xyXG4gICAgICBAZXh0ZW5kIC5idG4tLWJvcmRlcjtcclxuICAgICAgQGV4dGVuZCAldGl0bGUyO1xyXG4gICAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZXJyb3ItbWVzc2FnZXtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgY29sb3I6ICRjb2xvci1yZWQtZm9ybTtcclxuICB9XHJcblxyXG59XHJcblxyXG4uZ2Zvcm1fd3JhcHBlcntcclxuICAuZ2Zvcm1fYnV0dG9uLmJ1dHRvbntcclxuICAgIEBleHRlbmQgLmJ0bjtcclxuICAgIEBleHRlbmQgLmJ0bi0tYm9yZGVyO1xyXG4gICAgQGV4dGVuZCAldGl0bGUyO1xyXG4gICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4iLCIkYnVyZ2VyLXdpZHRoOiAzMHB4O1xyXG4kYnVyZ2VyLWhlaWdodDogMjVweDtcclxuJGJ1cmdlci1jb2xvcjogI2ZmZjtcclxuJGJ1cmdlci1jb2xvci1ob3ZlcjogI2ZmZjtcclxuJGJ1cmdlci1jb2xvci1vcGVuOiAjZmZmO1xyXG4kYnVyZ2VyLWxpbmUtaGVpZ2h0OiAzcHg7XHJcbiRidXJnZXItbGluZS1yYWRpdXM6IDBweDtcclxuXHJcbi5tZW51LWljb24sLm1lbnUtaWNvbi0tYXNpZGV7XHJcbiAgQGF0LXJvb3QgLm1lbnUtaXMtb3BlbiAme1xyXG4gICAgJi5idXJnZXJ7XHJcbiAgICAgIHNwYW4sJjpiZWZvcmUsJjphZnRlcntjb2xvcjogJGJ1cmdlci1jb2xvci1vcGVuO31cclxuICAgIH1cclxuICAgIHotaW5kZXg6IDIwMDtcclxuICAgIGNvbG9yOiAkYnVyZ2VyLWNvbG9yLW9wZW47XHJcbiAgfVxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCl7XHJcbiAgICAmOmhvdmVye1xyXG4gICAgICAmLmJ1cmdlcntcclxuICAgICAgICBzcGFuLCY6YmVmb3JlLCY6YWZ0ZXJ7Y29sb3I6ICRidXJnZXItY29sb3ItaG92ZXI7fVxyXG4gICAgICB9XHJcbiAgICAgIGNvbG9yOiAkYnVyZ2VyLWNvbG9yLWhvdmVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogJGJ1cmdlci13aWR0aDtcclxuICBoZWlnaHQ6ICRidXJnZXItaGVpZ2h0O1xyXG4gIGJvcmRlcjpub25lO1xyXG4gIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XHJcbiAgcG9zaXRpb246cmVsYXRpdmU7XHJcbiAgY3Vyc29yOnBvaW50ZXI7XHJcbiAgJi5sYXJnZXtcclxuICAgIHdpZHRoOiAycmVtO1xyXG4gICAgaGVpZ2h0OiAxLjhyZW07XHJcbiAgfVxyXG4gICY6Zm9jdXMge1xyXG4gICAgb3V0bGluZTpub25lO1xyXG4gIH1cclxuICAmLmJ1cmdlciB7XHJcbiAgICAmOmFmdGVyLFxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICBzcGFuIHtcclxuICAgICAgY29sb3I6ICRidXJnZXItY29sb3I7XHJcbiAgICAgIHdpZHRoOjEwMCU7XHJcbiAgICAgIGhlaWdodDokYnVyZ2VyLWxpbmUtaGVpZ2h0O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAkYnVyZ2VyLWxpbmUtcmFkaXVzO1xyXG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xyXG5cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgICY6YWZ0ZXIsXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6XCJcIjtcclxuICAgICAgdHJhbnNpdGlvbjogMC4zcyB3aWR0aCAwLjRzO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICB0b3A6MDtcclxuICAgICAgbGVmdDowO1xyXG4gICAgICBtYXJnaW4tdG9wOjA7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBib3R0b206MDtcclxuICAgICAgcmlnaHQ6MDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTowO1xyXG4gICAgfVxyXG5cclxuICAgIHNwYW4ge1xyXG4gICAgICB0b3A6NTAlO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtKCRidXJnZXItbGluZS1oZWlnaHQpLzI7XHJcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIDtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6XCJcIjtcclxuICAgICAgICBiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtcclxuICAgICAgICB3aWR0aDoxMDAlO1xyXG4gICAgICAgIGhlaWdodDokYnVyZ2VyLWxpbmUtaGVpZ2h0O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6JGJ1cmdlci1saW5lLXJhZGl1cztcclxuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OjA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYub24ge1xyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcclxuICAgICAgICB3aWR0aDowO1xyXG4gICAgICAgIGxlZnQ6MDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xyXG4gICAgICAgIHdpZHRoOjA7XHJcbiAgICAgICAgcmlnaHQ6MDtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm0gMC40cyA7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm0gMC40cyA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4uYi1zaWRlYmFyLW1lbnV7XHJcbiAgJl9fdGl0bGV7XHJcbiAgICAmLmlzLWFjdGl2ZXtcclxuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXNlY29uZGFyeTtcclxuICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gICAgfVxyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgYmFja2dyb3VuZDogIzAwMDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgPmF7XHJcbiAgICAgICY6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOiBub25lO31cclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAxLjhyZW0gMXJlbTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG4gICZfX2NvbnRlbnR7XHJcbiAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgLy9wYWRkaW5nLXJpZ2h0OiAycmVtO1xyXG4gIH1cclxuXHJcbiAgJl9fbmF2e1xyXG4gICAgbGl7XHJcbiAgICAgICY6bm90KDpsYXN0LW9mLXR5cGUpe1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgIH1cclxuICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICB9XHJcbiAgICAuaXMtYWN0aXZle1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5uYXZpZ2F0aW9ue1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG5cclxuICAuc2NyZWVuLXJlYWRlci10ZXh0e1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIC5uYXYtbGlua3N7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIH1cclxuICAucGFnZS1udW1iZXJze1xyXG4gICAgcGFkZGluZy1sZWZ0OiAuNHJlbTtcclxuICAgIHBhZGRpbmctcmlnaHQ6IC40cmVtO1xyXG4gIH1cclxuICAuY3VycmVudHtmb250LXdlaWdodDogYm9sZDt9XHJcbn0iLCIkY2xvc2Utd2lkdGg6IDUuMXJlbTtcclxuJGNsb3NlLWxpbmUtd2lkdGg6IC40cmVtO1xyXG5cclxuLmNsb3NlLWJ1dHRvbntcclxuICAmOmJlZm9yZSwmOmFmdGVye1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6MDtcclxuICAgIGxlZnQ6ICgkY2xvc2Utd2lkdGgvMikgKyAkY2xvc2UtbGluZS13aWR0aC8yO1xyXG4gICAgaGVpZ2h0OiAkY2xvc2Utd2lkdGggKyAkY2xvc2UtbGluZS13aWR0aC8yO1xyXG4gICAgd2lkdGg6ICRjbG9zZS1saW5lLXdpZHRoO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgfVxyXG4gICY6YmVmb3Jle3RyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTt9XHJcbiAgJjphZnRlcnt0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO31cclxuXHJcbiAgJjpob3ZlcntcclxuICAgIG9wYWNpdHk6IC41O1xyXG4gIH1cclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgZm9udC1zaXplOiAwO1xyXG4gIHdpZHRoOiAkY2xvc2Utd2lkdGg7XHJcbiAgaGVpZ2h0OiAkY2xvc2Utd2lkdGg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLCBiYWNrZ3JvdW5kIC4zcyBlYXNlO1xyXG59XHJcblxyXG5odG1sLmlzLXJldmVhbC1vcGVuIGJvZHl7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4ucmV2ZWFsLW92ZXJsYXl7XHJcbiAgLy9kaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgjMDAwLCAwLjgpO1xyXG4gIC8vLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XHJcbiAgLy9iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XHJcbn1cclxuXHJcbi5yZXZlYWx7XHJcblxyXG4gICYucmV2ZWFsLXRyYW5zcGFyZW50e1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICBvdXRsaW5lOiBub25lO1xyXG4gIHBhZGRpbmc6IDQuNXJlbTtcclxuICBtYXgtd2lkdGg6ICRjb250YWluZXItd2lkdGggLSAxM3JlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y5RTg7XHJcbiAgYm9yZGVyOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gIC8vYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XHJcbiAgYm9yZGVyLXJhZGl1czogMHJlbTtcclxuXHJcbiAgJi5yZXZlYWwtc21hbGx7XHJcbiAgICBtYXgtd2lkdGg6IDcwcmVtO1xyXG4gIH1cclxuXHJcbiAgJl9fY2xvc2V7XHJcbiAgICAmOmhvdmVye1xyXG4gICAgICAvL2NvbG9yOiBkYXJrZW4oJGNvbG9yLWJsdWUsMTAlKTtcclxuICAgICAgb3BhY2l0eTogLjg7XHJcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgIGJvcmRlcjpub25lO1xyXG4gICAgfVxyXG4gICAgLy9iYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG4gICAgLy9ib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE5NiwgMTk2LCAxOTYsIDAuMSk7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgLy9ib3gtc2hhZG93OiAyLjZyZW0gMi42cmVtIDhyZW0gcmdiYSg0NywgNDcsIDk5LCAwLjEpO1xyXG4gICAgLy9ib3JkZXItcmFkaXVzOiAycmVtO1xyXG4gICAgd2lkdGg6IDYuMnJlbTtcclxuICAgIGhlaWdodDogNi4ycmVtO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMXJlbTtcclxuICAgIHJpZ2h0OiAxcmVtO1xyXG4gICAgei1pbmRleDogNTA7XHJcbiAgICBjb2xvcjojMDAwO1xyXG4gICAgc3Zne1xyXG4gICAgICB3aWR0aDogMi4ycmVtO1xyXG4gICAgICBoZWlnaHQ6IDIuMnJlbTtcclxuICAgICAgcGF0aHtmaWxsOiBjdXJyZW50Q29sb3I7c3Ryb2tlOiBjdXJyZW50Q29sb3I7fVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNsb3NlLWJ1dHRvbntcclxuICAgICY6YmVmb3JlLCY6YWZ0ZXJ7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDowO1xyXG4gICAgICBsZWZ0OiAoJGNsb3NlLXdpZHRoLzIpICsgJGNsb3NlLWxpbmUtd2lkdGgvMjtcclxuICAgICAgaGVpZ2h0OiAkY2xvc2Utd2lkdGggKyAkY2xvc2UtbGluZS13aWR0aC8yO1xyXG4gICAgICB3aWR0aDogJGNsb3NlLWxpbmUtd2lkdGg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgIH1cclxuICAgICY6YmVmb3Jle3RyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTt9XHJcbiAgICAmOmFmdGVye3RyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7fVxyXG5cclxuICAgICY6aG92ZXJ7XHJcbiAgICAgIG9wYWNpdHk6IC41O1xyXG4gICAgfVxyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIC8vcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBmb250LXNpemU6IDA7XHJcbiAgICB3aWR0aDogJGNsb3NlLXdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkY2xvc2Utd2lkdGg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZSwgYmFja2dyb3VuZCAuM3MgZWFzZTtcclxuICB9XHJcblxyXG4gIC5tb2RhbC1oZWFkZXJ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuXHJcbiAgLm1vZGFsLWJvZHl7XHJcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcclxuICB9XHJcblxyXG4gIC5tb2RhbC10aXRsZXtcclxuICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcclxuICAgIC5hcnRpY2xlLXRpdGxle1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC5tb2RhbC1mb290ZXJ7XHJcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XHJcbiAgICAuYnRue1xyXG4gICAgICBtaW4td2lkdGg6IDI0cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWZyYW1le1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIHZpZGVve1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICB9XHJcblxyXG4gIC5yZXNwb25zaXZlLWVtYmVke1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuICAgIGJhY2tncm91bmQ6ICNjY2MgdXJsKC4uL2ltZy9jb21tb24vbG9hZGVyLnN2ZykgNTAlIDUwJSBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE1cmVtIGF1dG87XHJcbiAgfVxyXG5cclxuICAmLnJldmVhbC1pbmZve1xyXG4gICAgLy9tYXgtd2lkdGg6ICRjb250YWluZXItd2lkdGggLSAxNHJlbTtcclxuICAgIGlmcmFtZXtcclxuICAgICAgbWluLWhlaWdodDogNjl2aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYucmV2ZWFsLXZpZGVve1xyXG5cclxuICAgIC8vYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2ltZy9jb21tb24vbG9hZGVyLnN2ZykgNTAlIDUwJSBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgLmNsb3NlLWJ1dHRvbntcclxuICAgICAgJjpiZWZvcmUsICY6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjogI2ZmZjt9XHJcbiAgICB9XHJcbiAgICAubW9kYWwtYm9keXtcclxuICAgICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG5cclxuICAgICYucmV2ZWFsLWluZm97XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAubW9kYWwtYm9keXtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgICBpZnJhbWV7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTBweCAtIDEycHgpO1xyXG4gICAgICB9XHJcbiAgICAgIC5jbG9zZS1idXR0b257XHJcbiAgICAgICAgQGluY2x1ZGUgY2xvc2UtYigkY29sb3Itc2VjdGlvbi1ib3JkZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcGFkZGluZzogNTBweCA0MHB4O1xyXG5cclxuICAgIC5tb2RhbC1mb290ZXJ7XHJcbiAgICAgIC5idG57XHJcbiAgICAgICAgbWluLXdpZHRoOiAyMzVweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG4iLCIuc2hvdy1vbi1lbntcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIEBhdC1yb290IFtkaXI9XCJsdHJcIl0gJntcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxufVxyXG4uc2hvdy1vbi1oZXtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIEBhdC1yb290IFtkaXI9XCJydGxcIl0gJntcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5AbWl4aW4gaXRlbSgkd2lkdGgsICRicmVha3BvaW50KXtcclxuICBtYXgtd2lkdGg6ICR3aWR0aDtcclxuICB3aWR0aDogKCR3aWR0aC8kYnJlYWtwb2ludCkqMTAwdnc7XHJcbiAgbWluLXdpZHRoOiAkd2lkdGgvMjtcclxufVxyXG5cclxuLnNlY3Rpb24sLnMtc2VjdGlvbntcclxuXHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctdG9wOiBtYXBfZ2V0KCRzZWN0aW9uLCBwYWRkaW5nKTtcclxuICBwYWRkaW5nLWJvdHRvbTogbWFwX2dldCgkc2VjdGlvbiwgcGFkZGluZyk7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bil7fVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKXtcclxuICAgIHBhZGRpbmctdG9wOiBtYXBfZ2V0KCRzZWN0aW9uLCBwYWRkaW5nLW1kKTtcclxuICAgIHBhZGRpbmctYm90dG9tOiBtYXBfZ2V0KCRzZWN0aW9uLCBwYWRkaW5nLW1kKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcbiAgICBwYWRkaW5nLXRvcDogbWFwX2dldCgkc2VjdGlvbiwgcGFkZGluZy1zbSk7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogbWFwX2dldCgkc2VjdGlvbiwgcGFkZGluZy1zbSk7XHJcbiAgfVxyXG5cclxuICAmLm0tZ3JleXtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmV5O1xyXG4gIH1cclxuXHJcbiAgJi5tLWN5YW57XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItY3lhbjtcclxuICB9XHJcblxyXG4gICYubS15ZWxsb3d7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IteWVsbG93O1xyXG4gIH1cclxuXHJcbiAgJi5oMTAwe1xyXG4gICAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuJXNlY3Rpb257XHJcbiAgJi5tLWdyZXl7YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWdyZXk7fVxyXG4gICYubS1jeWFue2JhY2tncm91bmQtY29sb3I6ICRjb2xvci1jeWFuO31cclxuICAmLm0teWVsbG93e2JhY2tncm91bmQtY29sb3I6ICRjb2xvci15ZWxsb3c7fVxyXG59XHJcblxyXG5zZWN0aW9ue1xyXG4gIEBleHRlbmQgJXNlY3Rpb247XHJcbn1cclxuXHJcbi5zZWN0aW9uLXNsaWRlciwuc2VjdGlvbi1tYWluLXNsaWRlciwuc2VjdGlvbi1oZXJve1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIC8vb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAuYmctaW1ne1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGltZ3tvcGFjaXR5OiAwO3Zpc2liaWxpdHk6IGhpZGRlbjt9XHJcbiAgfVxyXG59XHJcblxyXG4uc2VjdGlvbi1iZ3tcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgLmJnLWltZ3tcclxuICAgICYuYmctcGFyYWxsYXh7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuICAgIH1cclxuICAgICYtLWZpeGVke2JhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7fVxyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtyaWdodDogMDtcclxuICAgIHRvcDogMDsgYm90dG9tOjA7XHJcbiAgICBpbWd7b3BhY2l0eTogMDt2aXNpYmlsaXR5OiBoaWRkZW47fVxyXG4gICAgLy96LWluZGV4OiAtMTtcclxuICB9XHJcbiAgLnN1YnRpdGxle2NvbG9yOiAjZmZmO31cclxuICAuY29udGFpbmVyLC5zZWN0aW9uLXRpdGxlLC5yb3d7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG59XHJcblxyXG4udmlkZW8td3JhcC5iZy1pbWd7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7cmlnaHQ6IDA7XHJcbiAgdG9wOiAwOyBib3R0b206MDtcclxuICBpbWd7b3BhY2l0eTogMDt2aXNpYmlsaXR5OiBoaWRkZW47fVxyXG4gIC8vei1pbmRleDogLTE7XHJcbn1cclxuXHJcbi5yb3ctLXNlY3Rpb257XHJcbiAgbWFyZ2luLXRvcDogM3JlbTtcclxufVxyXG5cclxuLnJvdy0tbGlzdHtcclxuICBtYXJnaW4tYm90dG9tOiAtMS41cmVtO1xyXG4gIC5jb2x1bW57XHJcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgIC5jb2x1bW4gKyAuY29sdW1ue1xyXG4gICAgICAvL3BhZGRpbmctdG9wOiAzcmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnN0YWNrZWQtb24tbGFyZ2V7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSBkb3duKXtcclxuICAgID4uY29sdW1uICsgLmNvbHVtbntcclxuICAgICAgcGFkZGluZy10b3A6IDNyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5zdGFja2VkLW9uLXRhYmxldHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgID4uY29sdW1uICsgLmNvbHVtbntcclxuICAgICAgcGFkZGluZy10b3A6IDNyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5zdGFja2VkLW9uLW1lZGl1bXtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKXtcclxuICAgID4uY29sdW1uICsgLmNvbHVtbntcclxuICAgICAgcGFkZGluZy10b3A6IDNyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5zdGFja2VkLW9uLXNtYWxse1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcbiAgICA+LmNvbHVtbiArIC5jb2x1bW57XHJcbiAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLl9lcXVhbC1jb2x1bW57XHJcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgLmNvbHVtbntcclxuICAgIC8vZmxleDoxO1xyXG4gICAgaGVpZ2h0OmF1dG87XHJcbiAgICA+ZGl2e1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uX2xvYWRlcntcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvY29tbW9uL2xvYWRlci5zdmcpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTJyZW07XHJcbn1cclxuXHJcbi5faGVhZGVyLW9mZnNldHtcclxuICBwYWRkaW5nLXRvcDogMTlyZW07XHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpe1xyXG4gICAgcGFkZGluZy10b3A6IDgycHg7XHJcbiAgfVxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyNXB4KXtcclxuICAgIC8vcGFkZGluZy10b3A6IDE1cmVtO1xyXG4gIH1cclxufVxyXG5cclxuLnMtaGVyb3tcclxuXHJcbiAgJi5faGVhZGVyLW9mZnNldHtcclxuICAgIHBhZGRpbmctdG9wOiAxNHJlbTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQ6ICRjb2xvci1iZy1mb290ZXI7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAvL21pbi1oZWlnaHQ6IDgwdmg7XHJcblxyXG4gICZfX2Jne31cclxuXHJcbiAgJl9fcGlje31cclxuXHJcbiAgJl9fY29udGVudHtcclxuICAgIHBhZGRpbmctdG9wOiA2cmVtO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xyXG4gIH1cclxuXHJcbiAgJl9fZXZlbnR7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuICAgICYtaXRte1xyXG4gICAgICAmOmxpbmt7XHJcbiAgICAgICAgJjpob3Zlcntjb2xvcjpjdXJyZW50Q29sb3I7fVxyXG4gICAgICAgIEBpbmNsdWRlIG5vZGVjb3I7XHJcbiAgICAgIH1cclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBtaW4td2lkdGg6IDQ1cmVtO1xyXG4gICAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICAgIEBleHRlbmQgJXRpdGxlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgYmFja2dyb3VuZDogI0ZDRjlFODtcclxuICAgICAgYm9yZGVyOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgICBwYWRkaW5nOiAuM2VtIC42ZW0gLjNlbTtcclxuXHJcbiAgICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcclxuXHJcbiAgICAgICYudGV4dC0tcGlua3tcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXJlZDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1yb2NrLWNvbG9yKTtcclxuICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTVweCAwcHggcmdiYSgkY29sb3ItcmVkLCAuNyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICYudGV4dC0tZ3JlZW57XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmVlbjtcclxuICAgICAgICBiYWNrZ3JvdW5kOnZhcigtLWphenotY29sb3IpO1xyXG4gICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxNXB4IDBweCByZ2JhKCRjb2xvci1ncmVlbiwgLjcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYXtjb2xvcjpjdXJyZW50Q29sb3I7QGluY2x1ZGUgbm9kZWNvcjt9XHJcblxyXG4gICAgICAmICsgJntcclxuICAgICAgICBtYXJnaW4tdG9wOiAxLjRyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pe1xyXG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtO1xyXG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcclxuXHJcbiAgICAmX19jb250ZW50e1xyXG4gICAgICBwYWRkaW5nLXRvcDogMHJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmX19ldmVudHtcclxuICAgICAgY29sb3I6JGNvbG9yLWhlYWRlcjtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAmX19ldmVudC1yb3d7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBmbGV4OjE7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBjb2xvcjokY29sb3ItaGVhZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5ldmVudC1kYXRle1xyXG4gICAgICAvL0BleHRlbmQgJXRpdGxlO1xyXG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRpdGxlO1xyXG4gICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gICAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICBjb2xvcjokY29sb3ItaGVhZGVyO1xyXG4gICAgICB0ZXh0LXNoYWRvdzogMHB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcclxuICAgIH1cclxuXHJcbiAgICAmX19ldmVudC1pdG17XHJcbiAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgIGJvcmRlci13aWR0aDogNHB4O1xyXG4gICAgICBtaW4td2lkdGg6IDMyLjdyZW07XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4ucy1oZXJvLXBpY3tcclxuICBtaW4taGVpZ2h0OiA3MHZoO1xyXG4gIGhlaWdodDogNzdyZW07XHJcbiAgJl9fYmd7XHJcbiAgICBAaW5jbHVkZSBkaXJlY3Rpb24ocnRsKXtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7XHJcbiAgICBtaW4taGVpZ2h0OiA0OHJlbTtcclxuICAgIGhlaWdodDogNDhyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ucy1oZXJvICsgc2VjdGlvbltjbGFzc149XCJzLVwiXSxcclxuLnMtaGVybyArIC5zZWN0aW9ue1xyXG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICBib3JkZXItdG9wLXdpZHRoOiA0cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uX2JnLWNvbnRlbnQsJWJnLWNvbnRlbnR7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjREODtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2NvbW1vbi9iZy1jb250ZW50X19iLnBuZyksIHVybCguLi9pbWcvY29tbW9uL2JnLWNvbnRlbnRfX2Nsb3VkLnBuZyk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCUsIDAlIDEwJTtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUsIDk1JSBhdXRvO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcclxuICAmLl9uby1iZ3tcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uX2JnLXBlcnNvbiwlYmctcGVyc29ue1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY0RDg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjlFODtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2NvbW1vbi9iZ19fcGVyc29uLnBuZyk7XHJcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC15O1xyXG4gICYuX25vLWJne1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbiVzZWN0aW9uLWlubmVye1xyXG4gIHBhZGRpbmc6IDdyZW0gNnJlbTtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgcGFkZGluZzogNHJlbSAycmVtIDZyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ucy1tYWluX19jb250ZW50e1xyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZDogI0ZGRjREODtcclxuICAvL2JhY2tncm91bmQtY29sb3I6ICNGQ0Y5RTg7XHJcbiAgYm9yZGVyOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gIC8vYm9yZGVyLXRvcDogMDtcclxuXHJcbiAgLnMtY29udGVudC1ob21le1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjlFODtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvY29tbW9uL2Fib3V0LWJnLWZvb3Rlci5wbmcpLCB1cmwoLi4vaW1nL2NvbW1vbi9hYm91dC1iZy10b3AucG5nKTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAxMDAlLCAxMDAlIDElO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlLCAxMDAlIGF1dG87XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCBuby1yZXBlYXQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcclxuICAgIHBhZGRpbmctdG9wOiA0cmVtO1xyXG5cclxuICAgICYuX25vLWJne1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYuX2JnLXBlcnNvbntcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjREODtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjlFODtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9jb21tb24vYmdfX3BlcnNvbi5wbmcpO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMCU7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xyXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XHJcbiAgICAgICYuX25vLWJne1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLl9iZy1jbG91ZHN7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY0RDg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y5RTg7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvY29tbW9uL2Fib3V0LWJnLXRvcC5wbmcpO1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMCU7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xyXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XHJcbiAgICAgICYuX25vLWJne1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgJi5zLWNvbnRlbnQtaG9tZS0tbmF2e1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA0cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi0tZ3Vlc3Rze1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTAwJSwgMTAwJSAwO1xyXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQteTtcclxuICAgIH1cclxuXHJcbiAgICAmLS1hcnRpc3R7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgfVxyXG5cclxuICAgICYtLW5hdntcclxuICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICY6bm90KFtjbGFzcyo9XCJfYmctXCJdKXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bil7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogNjgwcHggYXV0bywgMTA2OHB4IGF1dG87XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAxMDAlLCA1MiUgMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy5zLWNvbnRlbnR7XHJcbiAgLy8gICYuX25vLWJne1xyXG4gIC8vICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgLy8gIH1cclxuICAvLyAgcGFkZGluZzogNXJlbSA2cmVtIDE0cmVtO1xyXG4gIC8vICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGNEQ4O1xyXG4gIC8vICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2NvbW1vbi9iZy1jb250ZW50X19iLnBuZyksIHVybCguLi9pbWcvY29tbW9uL2JnLWNvbnRlbnRfX2Nsb3VkLnBuZyk7XHJcbiAgLy8gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAxMDAlLCAwJSAxMCU7XHJcbiAgLy8gIGJhY2tncm91bmQtc2l6ZTogMTAwJSwgOTUlIGF1dG87XHJcbiAgLy8gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcclxuICAvLyAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAvLyAgICBwYWRkaW5nOiA0cmVtIDJyZW0gNnJlbTtcclxuICAvLyAgfVxyXG4gIC8vfVxyXG5cclxuICAucy1jb250ZW50e1xyXG4gICAgJi5fYmctcGVyc29ue1xyXG4gICAgICAmOmFmdGVye1xyXG4gICAgICAgIEBleHRlbmQgJWJnLXBlcnNvbjtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBAaW5jbHVkZSBhYnNvbHV0ZVN0cmV0Y2g7XHJcbiAgICAgICAgdG9wOiAyMHJlbTtcclxuICAgICAgICBib3R0b206IDIwcmVtO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICB9XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gID4gc2VjdGlvbiArIHNlY3Rpb257XHJcbiAgICBib3JkZXItdG9wOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDRweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZWN0aW9ue1xyXG4gICAgcGFkZGluZzogN3JlbSA2cmVtO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgICAgcGFkZGluZzogNHJlbSAycmVtIDZyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucy1mb3Jte1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBwYWRkaW5nOiA3cmVtIDZyZW07XHJcbiAgICAmX19ib2R5e1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGJvcmRlcjogNHB4IHNvbGlkICMwMDA7XHJcbiAgICAgIC8vcGFkZGluZzogNHB4O1xyXG4gICAgICBtYXgtaGVpZ2h0OiA3MHZoO1xyXG4gICAgICBoZWlnaHQ6IDc5cmVtO1xyXG4gICAgICBpZnJhbWV7XHJcbiAgICAgICAgQGluY2x1ZGUgc2Nyb2xsYmFyLXN0eWxlO1xyXG4gICAgICAgIEBpbmNsdWRlIGFic29sdXRlU3RyZXRjaDtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgIGJvcmRlci13aWR0aDogNHB4O1xyXG4gIH1cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDA7XHJcbiAgICBib3JkZXItcmlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjVweCl7XHJcbiAgICBib3JkZXItbGVmdDogMDtcclxuICAgIGJvcmRlci1yaWdodDogMDtcclxuICB9XHJcblxyXG59XHJcblxyXG4ucmVzcG9uc2l2ZS1lbWJlZHtcclxuICBiYWNrZ3JvdW5kOiAjRDhEOEQ4O1xyXG59XHJcblxyXG4ucy12aWRlb3tcclxuICBiYWNrZ3JvdW5kOiAjRDhEOEQ4O1xyXG4gIEBhdC1yb290IC5zLW1haW5fX2NvbnRlbnQgJntcclxuICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICBib3JkZXItYm90dG9tOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDRweDtcclxuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnMtY29udGVudHtcclxuXHJcbiAgJl9fYnRue1xyXG5cclxuICAgIC5yb3d7XHJcbiAgICAgIC5zaHJpbmt7XHJcbiAgICAgICAgLy9mbGV4LWdyb3c6IDE7XHJcbiAgICAgIH1cclxuICAgICAgLnRleHQtcmlnaHR7XHJcbiAgICAgICAgLmJ0bntcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgXHJcbiAgJl9fYm9keXt9XHJcbiAgXHJcbiAgJl9faGVhZGVye31cclxuICBcclxuICAmX19uYXZ7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4O1xyXG4gICAgfVxyXG4gICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgIHBhZGRpbmc6IDVyZW0gM3JlbSAxLjNyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbGluay1hY3RpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAmLWFycm93e1xyXG4gICAgICBAZXh0ZW5kICV0aXRsZTtcclxuICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgIHdpZHRoOiAyMHJlbTtcclxuICAgICAgZmxleDogMCAwIDI1JTtcclxuICAgICAgbWF4LXdpZHRoOiAyNSU7XHJcblxyXG4gICAgICBhe1xyXG4gICAgICAgIEBpbmNsdWRlIG5vZGVjb3I7XHJcbiAgICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3BhbntcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IC4yNWVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC4yNWVtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdmcsW2NsYXNzXj1cInN2Zy1pbmxpbmVcIl17XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgd2lkdGg6IDEuNWVtO1xyXG4gICAgICAgIGhlaWdodDogMS41ZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICAucy1jb250ZW50X19uYXYtYXJyb3cgfiAucy1jb250ZW50X19uYXYtYXJyb3d7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICBAaW5jbHVkZSBkaXJlY3Rpb24ocnRsKXtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLWFycm93LWxpbmt7XHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgb3BhY2l0eTogLjc7XHJcbiAgICAgIH1cclxuICAgICAgdHJhbnNpdGlvbjogLjJzIGVhc2U7XHJcbiAgICAgIEBpbmNsdWRlIG5vZGVjb3I7XHJcbiAgICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBAaW5jbHVkZSBkaXJlY3Rpb24ocnRsKXtcclxuICAgICAgICBzdmcsaSwuaWNvbntcclxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYtdGl0bGV7XHJcbiAgICAgIEBleHRlbmQgJXRpdGxlO1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICBmb250LXNpemU6IDQuNXJlbTtcclxuICAgICAgbWFyZ2luLXRvcDogLS4wNWVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fc2VjdGlvbntcclxuICAgICYgKyAme1xyXG4gICAgICBtYXJnaW4tdG9wOiA1cmVtO1xyXG4gICAgfVxyXG4gICAgLnMtY29udGVudF9fYm9keXtcclxuICAgICAgcGFkZGluZy10b3A6IDJyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgICZfX2J0bntcclxuICAgICAgLnJvd3tcclxuICAgICAgICAuY29sdW1ue1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgKyAuY29sdW1ue1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAudGV4dC1yaWdodHtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmJ0bi5idG4tLWdyb3Vwe1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiA1Mi40cmVtO1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6YXV0bztcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDphdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgICZfX25hdntcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICBwYWRkaW5nLXRvcDogM3JlbTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuXHJcbiAgICAgICYtYXJyb3d7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XHJcbiAgICAgICAgb3JkZXI6LTE7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XHJcbiAgICAgICAgZmxleDogMCAwIDUwJTtcclxuICAgICAgICB+IC5zLWNvbnRlbnRfX25hdi1hcnJvd3tcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtdGl0bGV7XHJcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5zLWFib3V0e1xyXG4gIGJhY2tncm91bmQ6ICNGQ0Y5RTg7XHJcbiAgLnNlY3Rpb24tdGl0bGV7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA2cmVtO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcclxuICAgICY6bGFzdC1vZi10eXBle1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBwe1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgfVxyXG59XHJcblxyXG4ucy1ub3RpY2V7XHJcblxyXG4gIHBhZGRpbmctdG9wOiA1cmVtO1xyXG4gIHBhZGRpbmctYm90dG9tOiA1cmVtO1xyXG5cclxuICAmX190aXRsZXtcclxuICAgIEBleHRlbmQgJXRpdGxlMjtcclxuICAgIC8vQGV4dGVuZCAldGl0bGU7XHJcbiAgICBsaW5lLWhlaWdodDogMjtcclxuICAgIGZvbnQtc2l6ZTogNC41cmVtO1xyXG5cclxuICAgICYgKyAme1xyXG4gICAgICBtYXJnaW4tdG9wOiA0cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pe1xyXG4gIC5ydGwsW2Rpcj1cInJ0bFwiXXtcclxuICAgIC5sYXJnZS1vZmZzZXQtMSB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogOC4zMzMzMyU7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5zLWNvbnRlbnR7XHJcblxyXG4gICYtLWFib3V0e1xyXG4gICAgLy9iYWNrZ3JvdW5kOiAjMDAwO1xyXG4gIH1cclxuICBcclxuICAmX19oZWFkZXJ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xyXG5cclxuICAgICYtdGl0bGV7XHJcbiAgICAgIC8vbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcclxuICAgICAgQGV4dGVuZCAldGl0bGU7XHJcbiAgICAgIGZvbnQtc2l6ZTogNC41cmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYtYnRue1xyXG4gICAgICAuYnRue21pbi13aWR0aDogMTMuOHJlbTt9XHJcbiAgICB9XHJcblxyXG4gICAgJi5fYm9yZGVye1xyXG4gICAgICBib3JkZXItYm90dG9tOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgICAvL3BhZGRpbmctYm90dG9tOiAyLjVyZW07XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fYm9keXtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgcHtcclxuICAgICAgZm9udC1zaXplOiAxMDAlO31cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgJl9faGVhZGVye1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgJi5fYm9yZGVye1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwcmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDRweDtcclxuICAgICAgfVxyXG4gICAgICAmLWJ0bnt9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLnMtYXJ0aXN0e1xyXG5cclxuICAmX19oZXJve1xyXG4gICAgQGV4dGVuZCAlc2VjdGlvbi1pbm5lcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDI7XHJcbiAgICAuYmctaW1ne1xyXG4gICAgICAmOmFmdGVye1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIEBpbmNsdWRlIGFic29sdXRlU3RyZXRjaDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDQ0LCAyOCwgMzMsIDAuOCkgMCUsIHJnYmEoNjQsIDEwNywgNzIsIDAuOCkgMTAwJSk7XHJcbiAgICAgIH1cclxuICAgICAgei1pbmRleDogLTE7XHJcbiAgICB9XHJcblxyXG4gICAgJi1oZWFkZXJ7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgY29sb3I6ICNGQ0Y5RTg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgPiAqOmZpcnN0LW9mLXR5cGV7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1waWN7XHJcbiAgICAgIGJvcmRlcjogNnB4IHNvbGlkICRjb2xvci1wcmltYXJ5O1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDRweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gICZfX3ZpZGVve1xyXG4gICAgcGFkZGluZy10b3A6IDRyZW07XHJcbiAgICAvL3BhZGRpbmctYm90dG9tOiA0cmVtO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLy8ucmVzcG9uc2l2ZS1lbWJlZHttYXJnaW4tdG9wOiA0cmVtO21hcmdpbi1ib3R0b206IDRyZW07fVxyXG4gICAgLnJlc3BvbnNpdmUtZW1iZWQgKyAucmVzcG9uc2l2ZS1lbWJlZHttYXJnaW4tdG9wOiA3cmVtO31cclxuICB9XHJcblxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG5cclxuICAgICZfX2hlcm97XHJcbiAgICAgICYtaGVhZGVye1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcclxuICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgPio6Zmlyc3Qtb2YtdHlwZXtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgPiAqICsgKntcclxuICAgICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX3ZpZGVve1xyXG4gICAgICAvL3BhZGRpbmctdG9wOiAycmVtO1xyXG4gICAgICAucmVzcG9uc2l2ZS1lbWJlZCArIC5yZXNwb25zaXZlLWVtYmVke21hcmdpbi10b3A6IDNyZW07fVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG4ucy1zdGlja3l7XHJcblxyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICB6LWluZGV4OiA1MDtcclxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcclxuXHJcbiAgJjphZnRlcntcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMzUlO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjMkMxQzIxIDAlLCByZ2JhKDQ0LCAyOCwgMzMsIDAuOSkgNyUsIHJnYmEoNDQsIDI4LCAzMywgMC42KSA0NyUsIHJnYmEoNDQsIDI4LCAzMywgMCkgMTAwJSk7XHJcbiAgfVxyXG5cclxuICAmX19idG57XHJcbiAgICAuYnRue1xyXG4gICAgICBib3JkZXItd2lkdGg6NHB4O1xyXG4gICAgICBwYWRkaW5nLXRvcDogLjEzZW07XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAuMmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnMtc3BlY2lhbHtcclxuXHJcbiAgJl9faGVhZGVye1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgcGFkZGluZzogNXJlbSAxcmVtO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMWQxZDFiIDAlLCAjMDc5YTU2IDEwMCUpO1xyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGV7XHJcbiAgICAmOmxhc3Qtb2YtdHlwZXtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICAgIGZvbnQtc2l6ZTogN3JlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIH1cclxuXHJcbiAgJl9fYm9keXtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLy9tYXJnaW4tbGVmdDogLTZweDtcclxuICAgIC8vbWFyZ2luLXJpZ2h0OiAtNnB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICBib3JkZXItYm90dG9tOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSBkb3duKXtcclxuICAgICAgYm9yZGVyLXdpZHRoOiA0cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pdG17XHJcblxyXG4gICAgJjpob3ZlcntcclxuICAgICAgb3BhY2l0eTogMC45O1xyXG4gICAgfVxyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZTtcclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLy9qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZmxleDowIDAgNTAlO1xyXG4gICAgbWF4LXdpZHRoOiA1MCU7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgICBwYWRkaW5nOiAzLjZyZW0gMS44cmVtO1xyXG4gICAgZm9udC1zaXplOiAyLjJyZW07XHJcbiAgICBmb250LXNpemU6IDMuM3JlbTtcclxuICAgIC8vZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIEBleHRlbmQgJXRpdGxlO1xyXG4gICAgLy9ib3JkZXI6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICAvL21hcmdpbi1yaWdodDogLTNweDtcclxuICAgICY6bGFzdC1vZi10eXBle1xyXG4gICAgICAvL21hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuXHJcbiAgICAmOm5vdCg6bGFzdC1jaGlsZCl7XHJcbiAgICAgIGJvcmRlci1pbmxpbmUtZW5kOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIGRvd24pe1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogNHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJiArICZ7XHJcbiAgICAgIC8vbWFyZ2luLWxlZnQ6IC0zcHg7XHJcbiAgICAgIC8vYm9yZGVyOiA0cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYtdHh0e1xyXG4gICAgICBhe1xyXG4gICAgICAgICY6aG92ZXIsJjpmb2N1c3tcclxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLXBpY3tcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleDogMCAxIGF1dG87XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgICAgLy9mbGV4OiAwIDEgYXV0bztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAuaXRtLWV2ZW50e1xyXG4gICAgJjpmaXJzdC1vZi10eXBle1xyXG4gICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAvL21hcmdpbi1sZWZ0OiAtNnJlbTtcclxuICAgIH1cclxuICAgIC8vb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnJlbTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBmb250LXNpemU6IDMuNnJlbTtcclxuICAgIG1pbi13aWR0aDogMy42ZW07XHJcbiAgICBwYWRkaW5nOiAxLjRyZW0gMXJlbTtcclxuICAgIC8vbWFyZ2luLXJpZ2h0OiAxLjVlbTtcclxuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAxLjVlbTtcclxuICAgIC8vZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIEBleHRlbmQgJXRpdGxlO1xyXG4gICAgaW1ne1xyXG4gICAgICAvL2ZsZXg6IDAgMSBhdXRvO1xyXG4gICAgICBtYXJnaW4tbGVmdDogLjVlbTtcclxuICAgICAgd2lkdGg6IDZyZW07XHJcbiAgICAgIG1heC13aWR0aDogMS4zZW07XHJcbiAgICAgIC8vbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgIC8vbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICYgKyAuaXRtLWV2ZW50e1xyXG4gICAgICB6LWluZGV4OiAwO1xyXG4gICAgICAvL21hcmdpbi1yaWdodDogMGVtO1xyXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcclxuICAgICAgbWFyZ2luLXRvcDogLTFlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5fcmVke1xyXG4gICAgLy8mOmhvdmVye31cclxuICAgIGJhY2tncm91bmQ6ICNkMDA5NmY7fVxyXG4gIC5feWVsbG93e1xyXG4gICAgYmFja2dyb3VuZDogI2U0Y2EwYTt9XHJcblxyXG4gIC5fcmVkMntcclxuICAgIC8vJjpob3Zlcnt9XHJcbiAgICBiYWNrZ3JvdW5kOiAjZDAwOTZmO31cclxuICAuX3llbGxvdzJ7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZTRjYTBhO31cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgICZfX2hlYWRlcntcclxuICAgICAgcGFkZGluZzogM3JlbSAxcmVtO1xyXG4gICAgfVxyXG4gICAgJl9fdGl0bGV7XHJcbiAgICAgIGZvbnQtc2l6ZTogMy40cmVtO1xyXG4gICAgICBicntkaXNwbGF5OiBub25lO31cclxuICAgIH1cclxuICAgICZfX2JvZHl7XHJcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIH1cclxuICAgICZfX2l0bXtcclxuICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcclxuICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKXtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtdHh0e1xyXG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMXJlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJiArICZ7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLml0bS1ldmVudHtcclxuICAgICAgZm9udC1zaXplOiAyLjJyZW07XHJcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG5cclxuICAgICAgJiArIC5pdG0tZXZlbnR7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIucmVzcG9uc2l2ZS1lbWJlZHtcclxuICA+aW1nLD4ucmVzcG9uc2l2ZSw+aWZyYW1le1xyXG4gICAgQGluY2x1ZGUgYWJzb2x1dGVTdHJldGNoO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICB9XHJcbiAgPmlmcmFtZXtcclxuICAgIG9iamVjdC1maXQ6IGZpbGw7XHJcbiAgfVxyXG59XHJcblxyXG4uYi1zb2NpYWwtaW5saW5le1xyXG4gIGZvbnQtc2l6ZTogMDtcclxuICBsaXtcclxuICAgIHBhZGRpbmc6IDAgN3B4O1xyXG4gICAgYXtcclxuICAgICAgJjpob3ZlcntcclxuICAgICAgICBvcGFjaXR5OiAuODtcclxuICAgICAgfVxyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmFicy1saW5re1xyXG4gIEBpbmNsdWRlIGFic29sdXRlU3RyZXRjaDtcclxuICB6LWluZGV4OiA1O1xyXG59XHJcblxyXG4uYi1ib3gtYWJvdXR7XHJcblxyXG4gIGJhY2tncm91bmQ6ICNGQ0Y5RTg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3JkZXI6IDRweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICBib3JkZXItd2lkdGg6IDJweDtcclxuICB9XHJcblxyXG4gICYuX2Nsb3Vkc3tcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2NvbW1vbi9jbG91ZHMuanBnKTtiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7fVxyXG4gICYuX2Nsb3VkLTF7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9jb21tb24vY2xvdWRzLTEuanBnKTtiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7fVxyXG4gICYuX2Nsb3VkLTJ7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9jb21tb24vY2xvdWRzLTIuanBnKTtiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7fVxyXG5cclxuICAmX190aXRsZXtcclxuICAgIEBleHRlbmQgLnNlY3Rpb24tdGl0bGU7XHJcbiAgICBAZXh0ZW5kICV0aXRsZTtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAvL2ZvbnQtc2l6ZTogNnJlbTtcclxuICB9XHJcblxyXG4gICZfX2Jne1xyXG4gICAgQGluY2x1ZGUgYWJzb2x1dGVTdHJldGNoO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XHJcbiAgICBAaW5jbHVkZSBkaXJlY3Rpb24ocnRsKXtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fcGlje1xyXG4gICAgLy9kaXNwbGF5OiBmbGV4O1xyXG4gICAgLy9hbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nOiAyLjRyZW0gM3JlbSAzLjRyZW07XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XHJcblxyXG4gICAgLmItYm94LWFib3V0X190aXRsZXtcclxuICAgICAgLy9tYXJnaW4tYm90dG9tOiAtLjJlbTtcclxuICAgICAgdG9wOiAuMWVtO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19jb250ZW50e1xyXG4gICAgcGFkZGluZzogMy42cmVtIDNyZW0gNXJlbTtcclxuICAgIGZsZXg6MTtcclxuICB9XHJcblxyXG59XHJcblxyXG4uYi1ib3gtYXJ0aXN0LWxpc3R7XHJcbiAgJi5yb3d7XHJcbiAgICBtYXJnaW4tbGVmdDogLTRyZW07XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC00cmVtO1xyXG4gICAgbWFyZ2luLXRvcDogLTEuNXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IC0xLjVyZW07XHJcbiAgfVxyXG5cclxuICA+LmNvbHVtbiwmX19pdG17XHJcbiAgICBwYWRkaW5nOiAzLjJyZW0gNHJlbTtcclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bil7XHJcbiAgICAmLnJvd3tcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xyXG4gICAgfVxyXG4gICAgPi5jb2x1bW4sJl9faXRte1xyXG4gICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmItYm94LXBlcnNvbi1saXN0e1xyXG4gICYucm93e1xyXG4gICAgbWFyZ2luLWxlZnQ6IC00cmVtO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtNHJlbTtcclxuICAgIG1hcmdpbi10b3A6IC0xLjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMS41cmVtO1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQzOXB4KSBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0ydnc7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLTJ2dztcclxuICAgIH1cclxuICB9XHJcblxyXG4gID4uY29sdW1uLCZfX2l0bXtcclxuICAgIHBhZGRpbmc6IDMuMnJlbSA0cmVtO1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQzOXB4KSBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAydnc7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJ2dztcclxuICAgIH1cclxuICB9XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bil7XHJcbiAgICAmLnJvd3tcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xyXG4gICAgfVxyXG4gICAgPi5jb2x1bW4sJl9faXRte1xyXG4gICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuJWJveC1wZXJzb257XHJcbiAgJHNlbGY6ICcuYi1ib3gtcGVyc29uJztcclxuICAvL3RoZW1lXHJcbiAgJi5fZ3JlZW57LmItYm94LWFydGlzdF9fdGl0bGV7YmFja2dyb3VuZDogJGNvbG9yLWdyZWVuO2JhY2tncm91bmQ6IHZhcigtLWphenotY29sb3IpfX1cclxuICAmLl9yZWR7LmItYm94LWFydGlzdF9fdGl0bGV7YmFja2dyb3VuZDogJGNvbG9yLXJlZDtiYWNrZ3JvdW5kOiB2YXIoLS1yb2NrLWNvbG9yKX19XHJcblxyXG4gICYuaGFzLWhvdmVye1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjpob3ZlcntcclxuICAgICAgLmItYm94LWFydGlzdF9fdGl0bGV7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXllbGxvdztcclxuICAgICAgfVxyXG4gICAgICAuYi1ib3gtYXJ0aXN0X19waWMgaW1ne1xyXG4gICAgICAgIC8vdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuYi1ib3gtYXJ0aXN0X190aXRsZXtcclxuICAgICAgdHJhbnNpdGlvbjogLjJzIGVhc2U7XHJcbiAgICB9XHJcbiAgICAuYi1ib3gtYXJ0aXN0X19waWN7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIGZvbnQtc2l6ZTogMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICAgIC8vYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAmLnJlc3BvbnNpdmUtZW1iZWR7XHJcbiAgICAgICAgPmltZ3tcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGltZ3tcclxuICAgICAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8mLmhhcy1ob3Zlci1ib3JkZXJ7XHJcbiAgLy8gICY6aG92ZXIsJjpmb2N1c3tcclxuICAvLyAgICBib3JkZXItY29sb3I6JGNvbG9yLWxpbmstYWN0aXZlO1xyXG4gIC8vICB9XHJcbiAgLy99XHJcblxyXG4gICYtLWNvdmVye1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLmItYm94LWFydGlzdF9fYm9keXtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB6LWluZGV4OiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvcmRlcjogNnB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBmb250LXNpemU6IDA7XHJcblxyXG4gICN7JHNlbGZ9X19ib2R5e1xyXG4gICAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xyXG4gICAgcGFkZGluZzogMnJlbSAwcmVtIDNyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiAjZTViMTZhO1xyXG4gIH1cclxuXHJcbiAgI3skc2VsZn1fX3RpdGxle1xyXG4gICAgQGV4dGVuZCAldGl0bGU7XHJcbiAgICAvL3BhZGRpbmctdG9wOiAuM2VtO1xyXG4gICAgZm9udC1zaXplOiA0LjVyZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IC4xNWVtO1xyXG4gICAgYXtjb2xvcjogY3VycmVudENvbG9yO31cclxuICB9XHJcblxyXG4gICN7JHNlbGZ9X190eHR7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBwe1xyXG4gICAgICBmb250LXNpemU6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgIGJvcmRlci13aWR0aDogNHB4O1xyXG4gICAgI3skc2VsZn1fX2JvZHl7XHJcbiAgICAgIGJvcmRlci13aWR0aDogNHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgICN7JHNlbGZ9X19ib2R5LCZfX2JvZHl7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgfVxyXG4gICAgJl9fdGl0bGUsICN7JHNlbGZ9X190aXRsZXtcclxuICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYi1ib3gtcGVyc29ue1xyXG4gIEBleHRlbmQgJWJveC1wZXJzb247XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cclxuICAmX19waWMtd3Jwe1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgJl9fYm9keXtcclxuICAgIGZsZXg6MTtcclxuICB9XHJcblxyXG4gICZfX2RhdGV7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgfVxyXG5cclxuICAmX19ldmVudHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgICBib3JkZXItd2lkdGg6IDRweDtcclxuICAgIH1cclxuICAgIGJvcmRlcjogNnB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgIGJhY2tncm91bmQ6ICNGQ0Y5RTg7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDEuM3JlbTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IDY7XHJcbiAgICBib3R0b206IC0zLjhyZW07XHJcbiAgICBsZWZ0OiA1JTtcclxuICAgIHJpZ2h0OiA1JTtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICYtdGl0bGV7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM4ODtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLjNlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2hlYWRlcntcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgICBib3JkZXItd2lkdGg6IDRweDtcclxuICAgIH1cclxuICAgIGJvcmRlcjogNnB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgIGJhY2tncm91bmQ6ICNGQ0Y5RTg7XHJcbiAgICBwYWRkaW5nOiAxLjJyZW0gMS4zcmVtO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogNjtcclxuICAgIHRvcDogLTIuNXJlbTtcclxuICAgIGxlZnQ6IDUlO1xyXG4gICAgcmlnaHQ6IDUlO1xyXG5cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgIC5pbWctZmxhZ3tcclxuICAgICAgbWF4LXdpZHRoOiAzcmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYtaWNue1xyXG4gICAgICBmbGV4OiAwIDEgYXV0bztcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMi42cmVtO1xyXG4gICAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcblxyXG4gICAgICBzdmd7XHJcbiAgICAgICAgd2lkdGg6IDFlbTtcclxuICAgICAgICBoZWlnaHQ6IDFlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmZhLWZhY2Vib29rLXNxdWFyZXtcclxuICAgICAgICBmb250LXNpemU6IDEwOCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF7XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgIG9wYWNpdHk6IDAuNztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9pe2xpbmUtaGVpZ2h0OiAwO31cclxuICAgICAgICB0cmFuc2l0aW9uOiAuMnMgZWFzZTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAvL3BhZGRpbmctbGVmdDogLjJlbTtcclxuICAgICAgICAvL3BhZGRpbmctcmlnaHQ6IC4yZW07XHJcbiAgICAgICAgQGluY2x1ZGUgbm9kZWNvcjtcclxuICAgICAgICBjb2xvcjogY3VycmVudENvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgICogKyAqe1xyXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDFyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3R4dHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtaW4taGVpZ2h0OiAzLjZyZW07XHJcbiAgfVxyXG5cclxuICAmLS1hcnRpc3R7XHJcbiAgICAuYi1ib3gtcGVyc29uX19ib2R5e1xyXG4gICAgICAvL3BhZGRpbmctYm90dG9tOiAxLjVyZW07XHJcbiAgICAgIC8vcGFkZGluZy10b3A6IDRyZW07XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xyXG4gICAgICBwYWRkaW5nLXRvcDogNHJlbTtcclxuICAgIH1cclxuICAgIC5iLWJveC1wZXJzb25fX3RpdGxle1xyXG4gICAgICBtaW4taGVpZ2h0OiA5cmVtO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgLy9wb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIC8vdG9wOiAuNXJlbTtcclxuICAgICAgJjpsYXN0LW9mLXR5cGV7XHJcbiAgICAgICAgLy9tYXJnaW4tdG9wOiAuNXJlbTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAtLjVyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWV2ZW50e1xyXG4gICAgLmItYm94LXBlcnNvbl9fYm9keXtcclxuICAgICAgYmFja2dyb3VuZDogI2U1YjE2YTtcclxuICAgIH1cclxuICAgIC5iLWJveC1wZXJzb25fX3RpdGxle1xyXG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XHJcbiAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS4xMTtcclxuICAgICAgJiArICp7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmItYm94LWFydGlzdHtcclxuXHJcbiAgLy90aGVtZVxyXG4gICYuX2dyZWVuey5iLWJveC1hcnRpc3RfX3RpdGxle2JhY2tncm91bmQ6ICRjb2xvci1ncmVlbjtiYWNrZ3JvdW5kOiB2YXIoLS1qYXp6LWNvbG9yKX19XHJcbiAgJi5fcmVkey5iLWJveC1hcnRpc3RfX3RpdGxle2JhY2tncm91bmQ6ICRjb2xvci1yZWQ7YmFja2dyb3VuZDogdmFyKC0tcm9jay1jb2xvcil9fVxyXG5cclxuICAmLmhhcy1ob3ZlcntcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICY6aG92ZXJ7XHJcbiAgICAgIC5iLWJveC1hcnRpc3RfX3RpdGxle1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci15ZWxsb3c7XHJcbiAgICAgIH1cclxuICAgICAgLmItYm94LWFydGlzdF9fcGljIGltZ3tcclxuICAgICAgICAvL3RyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmItYm94LWFydGlzdF9fdGl0bGV7XHJcbiAgICAgIHRyYW5zaXRpb246IC4ycyBlYXNlO1xyXG4gICAgfVxyXG4gICAgLmItYm94LWFydGlzdF9fcGlje1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgICAvL2JhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgJi5yZXNwb25zaXZlLWVtYmVke1xyXG4gICAgICAgID5pbWd7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpbWd7XHJcbiAgICAgICAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dDtcclxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLWNvdmVye1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLmItYm94LWFydGlzdF9fYm9keXtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB6LWluZGV4OiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGZvbnQtc2l6ZTogMDtcclxuXHJcbiAgJl9fYm9keXtcclxuICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRURBMjlCO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgJl9fdGl0bGV7XHJcbiAgICBAZXh0ZW5kICV0aXRsZTtcclxuICAgIC8vcGFkZGluZy10b3A6IC4zZW07XHJcbiAgICBwYWRkaW5nLXRvcDogLjFlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAuMmVtO1xyXG4gICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXByaW1hcnk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgIGJvcmRlci13aWR0aDogNHB4O1xyXG4gICAgJl9fYm9keXtcclxuICAgICAgYm9yZGVyLXdpZHRoOiA0cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG5cclxuICAgICZfX3RpdGxle1xyXG4gICAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5iLXNjaGVkdWxle1xyXG5cclxuICBib3JkZXI6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgYmFja2dyb3VuZDogIzczQkVBNTtcclxuXHJcbiAgJl9fcm93e1xyXG4gICAgJjpudGgtY2hpbGQoMSl7YmFja2dyb3VuZDogI0U2RUZERDt9XHJcbiAgICAmOm50aC1jaGlsZCgyKXtiYWNrZ3JvdW5kOiAjQ0VFNUQyO31cclxuICAgICY6bnRoLWNoaWxkKDMpe2JhY2tncm91bmQ6ICNCOERDQzc7fVxyXG4gICAgJjpudGgtY2hpbGQoNCl7YmFja2dyb3VuZDogI0ExRDJCQzt9XHJcbiAgICAmOm50aC1jaGlsZCg1KXtiYWNrZ3JvdW5kOiAjOEFDOEIxO31cclxuICAgICY6bnRoLWNoaWxkKDYpe2JhY2tncm91bmQ6ICM3M0JFQTU7fVxyXG5cclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gICAgJiArICZ7XHJcbiAgICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19jb2x7XHJcbiAgICBmbGV4OjE7XHJcbiAgICBmbGV4OiAwIDAgMzMuMzMlO1xyXG4gICAgcGFkZGluZzogNnJlbSA0cmVtO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IHVwKXtcclxuICAgICAgJi5jb2wtYXJ0aXN0IH4gLmItc2NoZWR1bGVfX2NvbHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGF0LXJvb3QgLl9jb2wtNCAme1xyXG4gICAgICBmbGV4OiAwIDAgMjUlO1xyXG4gICAgfVxyXG5cclxuICAgICYgKyAme1xyXG4gICAgICAvL2JvcmRlci1sZWZ0OiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgICY6bm90KDpsYXN0LWNoaWxkKXtcclxuICAgICAgYm9yZGVyLWlubGluZS1lbmQ6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sLWFydGlzdHtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JlZW4tZGFyaztcclxuICAgIEBleHRlbmQgJXRpdGxlMjtcclxuICAgIGZvbnQtc2l6ZTogMi44cmVtO1xyXG4gIH1cclxuXHJcbiAgLmNvbC1pbmZve1xyXG4gICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICBwe1xyXG4gICAgICBmb250LXNpemU6IDEwMCU7fVxyXG4gICAgaDIsaDMsaDR7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuOHJlbTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIH1cclxuICAgIHVse1xyXG4gICAgICBzcGFue1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgIH1cclxuICAgICAgbGl7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1O1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sLXBpY3tcclxuICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKXtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7XHJcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtMnJlbTtcclxuICAgIG1hcmdpbi1yaWdodDogLTJyZW07XHJcblxyXG4gICAgJl9fY29se1xyXG4gICAgICBib3JkZXI6IG5vbmUhaW1wb3J0YW50O1xyXG4gICAgICBmbGV4OiAwIDAgMTAwJTtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIH1cclxuICAgICZfX3Jvd3tcclxuICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XHJcbiAgICAgIGJvcmRlci13aWR0aDogNHB4IWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5jb2wtYXJ0aXN0LC5jb2wtdGl0bGV7XHJcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMHJlbTtcclxuICAgIH1cclxuICAgIC5jb2wtaW5mb3tcclxuICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICB1bHtcclxuICAgICAgICBzcGFue1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5iLXBlcnNvbntcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICBmb250LXNpemU6IDEuOHJlbTtcclxuXHJcbiAgJl9fcGlje1xyXG4gICAgZmxleDogMCAwIDUwJTtcclxuICAgIG1heC13aWR0aDogNTAlO1xyXG4gICAgYm9yZGVyOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICAgIGJvcmRlci13aWR0aDogNHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9faW5mb3tcclxuICAgID4gZGl2ICsgZGl2e1xyXG4gICAgICBtYXJnaW4tdG9wOiAzcmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fYm9keXtcclxuICAgIC8vcGFkZGluZy1sZWZ0OiA2LjM1JTtcclxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA2LjM1JTtcclxuICAgIGZsZXg6IDAgMCA1MCU7XHJcbiAgICBtYXgtd2lkdGg6IDUwJTtcclxuXHJcbiAgICA+ICogKyAqe1xyXG4gICAgICBtYXJnaW4tdG9wOiAzcmVtO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gICZfX3RpdGxle1xyXG4gICAgZm9udC1zaXplOiAzLjJyZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLjE0ZW07XHJcblxyXG4gICAgJiArIC5iLXBlcnNvbl9fc3VidGl0bGV7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19zdWJ0aXRsZXtcclxuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICB9XHJcblxyXG4gICZfX3R4dHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gIH1cclxuXHJcbiAgJl9fbG9jYXRpb257XHJcbiAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBpbWd7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2JhbmR7XHJcblxyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcblxyXG4gICAgcHtmb250LXNpemU6IDEwMCU7fVxyXG5cclxuICAgICYtdGl0bGV7XHJcbiAgICAgIEBleHRlbmQgJXRpdGxlO1xyXG4gICAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICAgIG1hcmdpbi10b3A6IC0uNWVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogLjNlbTtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1saXN0e1xyXG4gICAgICBwe2ZvbnQtc2l6ZTogMTAwJTtsaW5lLWhlaWdodDogMS4xO31cclxuICAgICAgdWx7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTEuNXJlbTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMS41cmVtO1xyXG4gICAgICAgIEBpbmNsdWRlIGNvbHVtbi1jb3VudCgyLCAzcmVtKTtcclxuICAgICAgICBsaXtcclxuICAgICAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5iYW5kLWxibHttYXJnaW4tYm90dG9tOiAuNXJlbTt9XHJcbiAgICAuYmFuZC1kYXRhe2ZvbnQtd2VpZ2h0OiA3MDA7fVxyXG5cclxuICB9XHJcblxyXG4gICZfX3NvY2lhbHtcclxuXHJcbiAgICAmLXRpdGxle1xyXG4gICAgICBAZXh0ZW5kICV0aXRsZTtcclxuICAgICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtLjVlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICAgICAgcGFkZGluZy1ib3R0b206IC4zZW07XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDRweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtbGlzdHtcclxuICAgICAgdWx7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xyXG4gICAgICB9XHJcbiAgICAgIGxpe1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxuICAgICAgICAmICsgbGl7XHJcbiAgICAgICAgICAvL21hcmdpbi1sZWZ0OiAzcmVtO1xyXG4gICAgICAgICAgLy9tYXJnaW4taW5saW5lLXN0YXJ0OiAzcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBzdmcsLmljbntcclxuICAgICAgICB3aWR0aDogMWVtO1xyXG4gICAgICAgIGhlaWdodDogMWVtO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgfVxyXG4gICAgICBhe1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNC40cmVtO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcclxuICAgICAgICBAaW5jbHVkZSBub2RlY29yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgJl9fY29udGFjdHtcclxuXHJcbiAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcblxyXG4gICAgLmNvbnRhY3QtbGJse1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxuICAgIH1cclxuICAgIC5jb250YWN0LWRhdGF7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi10aXRsZXtcclxuICAgICAgQGV4dGVuZCAldGl0bGU7XHJcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgICAgbWFyZ2luLXRvcDogLS41ZW07XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAuM2VtO1xyXG4gICAgICBib3JkZXItYm90dG9tOiA2cHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLWxpc3R7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICBhe2NvbG9yOiBjdXJyZW50Q29sb3I7fVxyXG4gICAgICBwe1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgICAgfVxyXG4gICAgICBsaSArIGxpe1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKXtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICZfX3BpY3tcclxuICAgICAgZmxleDogMCAwIDQwJTtcclxuICAgICAgbWF4LXdpZHRoOiA0MCU7XHJcbiAgICB9XHJcbiAgICAmX19ib2R5e1xyXG4gICAgICBmbGV4OiAwIDAgNjAlO1xyXG4gICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgJl9fcGljLCZfX2JvZHl7XHJcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIH1cclxuICAgICZfX2JvZHl7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xyXG4gICAgICA+ICogKyAqe1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICZfX3RpdGxle1xyXG4gICAgICBmb250LXNpemU6IDIuNnJlbTtcclxuICAgIH1cclxuICAgICZfX3N1YnRpdGxle1xyXG4gICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICB9XHJcbiAgICAmX19pbmZve1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgfVxyXG4gICAgJl9fc29jaWFse1xyXG4gICAgICAmLXRpdGxle1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgIH1cclxuICAgICAgJi1saXN0e1xyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICBmb250LXNpemU6IDMuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uYi1jb250YWN0e1xyXG5cclxuICAmLnJvd3tcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IHVwKXtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTRyZW07XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLTRyZW07XHJcbiAgICAgID4uY29sdW1ue1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19mb3Jte1xyXG4gICAgaW5wdXQsdGV4dGFyZWF7XHJcbiAgICAgICY6Zm9jdXMsJjphY3RpdmUsJjpob3ZlcntcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICB9XHJcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBsYWJlbHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcbiAgICAgIGxhYmVse1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pbmZve1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICB9XHJcblxyXG59XHJcblxyXG4lYXJ0aXN0e1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgYm9yZGVyLXdpZHRoOiA0cHg7XHJcbiAgfVxyXG5cclxuICBAZXh0ZW5kICV0aXRsZTtcclxuICBib3JkZXI6IDZweCBzb2xpZCBjdXJyZW50Q29sb3I7XHJcbiAgYmFja2dyb3VuZDogI0ZDRjlFODtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgZm9udC1zaXplOiA0LjVyZW07XHJcbiAgcGFkZGluZzogLjQ1ZW0gLjQ1ZW0gLjVlbTtcclxuICAvL2xldHRlci1zcGFjaW5nOiAwLjFlbTtcclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI4MHB4KSBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXtcclxuICAgIGZvbnQtc2l6ZTogNHJlbTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pe1xyXG4gICAgZm9udC1zaXplOiAzLjVyZW07XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgZm9udC1zaXplOiAzcmVtO1xyXG4gIH1cclxufVxyXG5cclxuLmItYXJ0aXN0LWxpc3R7XHJcbiAgJi5yb3d7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6IC00LjVyZW07XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC00LjVyZW07XHJcbiAgICA+IC5jb2x1bW57XHJcbiAgICAgIHBhZGRpbmctbGVmdDogNC41cmVtO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0LjVyZW07XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKXtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XHJcbiAgICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcclxuICAgICAgPi5jb2x1bW57XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190aXRsZXtcclxuICAgIEBleHRlbmQgJWFydGlzdDtcclxuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gIH1cclxuXHJcbiAgJl9fYm9keXtcclxuICAgIHBhZGRpbmctdG9wOiA1cmVtO1xyXG4gICAgLmFydGlzdC1ib3ggKyAuYXJ0aXN0LWJveHtcclxuICAgICAgbWFyZ2luLXRvcDogNXJlbTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pe1xyXG4gICAgICBwYWRkaW5nLXRvcDogM3JlbTtcclxuICAgICAgLmFydGlzdC1ib3h7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICAgICAgfVxyXG4gICAgICAuYXJ0aXN0LWJveCArIC5hcnRpc3QtYm94e1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xyXG4gICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnI7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTUwcHgsIDFmcikpO1xyXG4gICAgICBncmlkLWdhcDogMnZ3O1xyXG4gICAgICAuYXJ0aXN0LWJveHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIC8vbWF4LXdpZHRoOiA0OCU7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgICB9XHJcbiAgICAgIC5hcnRpc3QtYm94ICsgLmFydGlzdC1ib3h7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uYXJ0aXN0LWJveHtcclxuICAmLl9ncmVlbiwmLl9qYXp6e1xyXG4gICAgY29sb3I6ICRjb2xvci1ncmVlbjtjb2xvcjogdmFyKC0tamF6ei1jb2xvcik7XHJcbiAgfVxyXG4gICYuX3JlZCwmLl9yb2Nre1xyXG4gICAgY29sb3I6ICRjb2xvci1yZWQ7Y29sb3I6IHZhcigtLXJvY2stY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgQGV4dGVuZCAlYXJ0aXN0O1xyXG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XHJcblxyXG4gID4gLmFydGlzdC1ib3hfX3R4dHtcclxuICAgIG1hcmdpbi10b3A6IC0uNWVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLS41ZW07XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWluLWhlaWdodDogMTByZW07XHJcbiAgfVxyXG5cclxuICAmX190eHR7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XHJcbiAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgIHN0cm9uZ3tmb250LXdlaWdodDogNzAwO31cclxuICAgICp7Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO31cclxuICAgIHB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTAwJTt9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG5cclxuICAgICZfX3R4dHtcclxuICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbi5iLW1hcHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3JkZXI6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICBib3JkZXItd2lkdGg6IDRweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gZXZlbnQtZ3JhZGllbnQoJGNvbG9yKXtcclxuICA+ICp7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgMC42NSk7XHJcbiAgICAmOm50aC1jaGlsZCgxKXtiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgMC4xKTt9XHJcbiAgICAmOm50aC1jaGlsZCgyKXtiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgMC4xNSk7fVxyXG4gICAgJjpudGgtY2hpbGQoMyl7YmFja2dyb3VuZDogcmdiYSgkY29sb3IsIDAuMik7fVxyXG4gICAgJjpudGgtY2hpbGQoNCl7YmFja2dyb3VuZDogcmdiYSgkY29sb3IsIDAuMjUpO31cclxuICAgICY6bnRoLWNoaWxkKDUpe2JhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAwLjMpO31cclxuICAgICY6bnRoLWNoaWxkKDYpe2JhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAwLjM1KTt9XHJcbiAgICAmOm50aC1jaGlsZCg3KXtiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgMC40KTt9XHJcbiAgICAmOm50aC1jaGlsZCg4KXtiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgMC40NSk7fVxyXG4gICAgJjpudGgtY2hpbGQoOSl7YmFja2dyb3VuZDogcmdiYSgkY29sb3IsIDAuNSk7fVxyXG4gICAgJjpudGgtY2hpbGQoMTApe2JhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAwLjU1KTt9XHJcbiAgICAmOm50aC1jaGlsZCgxMSl7YmFja2dyb3VuZDogcmdiYSgkY29sb3IsIDAuNik7fVxyXG4gICAgJjpudGgtY2hpbGQoMTIpe2JhY2tncm91bmQ6IHJnYmEoJGNvbG9yLCAwLjY1KTt9XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gSGV4VG9SR0IoJGhleCkge1xyXG4gIEByZXR1cm4gcmVkKCRoZXgpLCBncmVlbigkaGV4KSwgYmx1ZSgkaGV4KTtcclxufVxyXG4vLy0tY29sb3ItcGluay1yZ2I6ICN7SGV4VG9SR0IoIzU2QkY3Mil9O1xyXG5cclxuLmItYm94LWV2ZW50e1xyXG5cclxuICAvLy0tdGhlbWVcclxuICAmLl9qYXp6ey5iLWJveC1ldmVudF9faGVhZGVye0BleHRlbmQgJWJnLWpheno7fX1cclxuICAmLl9yb2Nrey5iLWJveC1ldmVudF9faGVhZGVye0BleHRlbmQgJWJnLXJvY2s7fX1cclxuICBAYXQtcm9vdCAuX2phenogJntcclxuICAgIC5iLWJveC1ldmVudF9faGVhZGVye0BleHRlbmQgJWJnLWpheno7fVxyXG4gICAgLmItYm94LWV2ZW50X19saXN0e1xyXG4gICAgICAvL0BpbmNsdWRlIGV2ZW50LWdyYWRpZW50KCM1NkJGNzIpO1xyXG4gICAgICBAaW5jbHVkZSBldmVudC1ncmFkaWVudCh2YXIoLS1qYXp6LWNvbG9yLXJnYikpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAYXQtcm9vdCAuX3JvY2sgJntcclxuICAgIC5iLWJveC1ldmVudF9faGVhZGVye0BleHRlbmQgJWJnLXJvY2s7fVxyXG4gICAgLmItYm94LWV2ZW50X19saXN0e1xyXG4gICAgICBAaW5jbHVkZSBldmVudC1ncmFkaWVudCgjRURBMjk4KTtcclxuICAgICAgQGluY2x1ZGUgZXZlbnQtZ3JhZGllbnQodmFyKC0tcm9jay1jb2xvci1yZ2IpKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8tLVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAvL2ZvbnQtc2l6ZTogMDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBib3JkZXI6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bil7XHJcbiAgICBib3JkZXItd2lkdGg6IDRweDtcclxuICAgIC5iLWJveC1ldmVudF9faGVhZGVye2JvcmRlci1ib3R0b20td2lkdGg6IDRweDt9XHJcbiAgfVxyXG5cclxuICAmX19oZWFkZXJ7XHJcbiAgICAvL2NvbG9yOiAjZmZmO1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWhlYWRlcjtcclxuICAgIHBhZGRpbmc6IDEuNXJlbSAxLjhyZW07XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcblxyXG4gICAgPiAqOmZpcnN0LW9mLXR5cGV7XHJcbiAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICYtdGl0bGV7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE2O1xyXG4gICAgICBmb250LXNpemU6IDMuNnJlbTtcclxuICAgICAgQGV4dGVuZCAldGl0bGU7XHJcbiAgICAgID5zcGFuLC5fc21hbGx7XHJcbiAgICAgICAgZm9udC1zaXplOiA4My4zJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICAmX19ib2R5e1xyXG5cclxuICB9XHJcblxyXG4gICZfX3Jvd3tcclxuICAgIHBhZGRpbmc6IDEuMXJlbSAxLjhyZW0gMS43cmVtO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgPiAqOmZpcnN0LWNoaWxke1xyXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2luZm97XHJcbiAgICBsaW5lLWhlaWdodDogMS4zNztcclxuICB9XHJcblxyXG4gICZfX2xpbmt7XHJcbiAgICAmOmhvdmVye1xyXG4gICAgICBvcGFjaXR5OiAuNztcclxuICAgIH1cclxuICAgICY6YWZ0ZXJ7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICBsZWZ0OiAtLjVyZW07XHJcbiAgICAgIHRvcDogLS41cmVtO1xyXG4gICAgICByaWdodDogLS41cmVtO1xyXG4gICAgICBib3R0b206IC0uNXJlbTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAvL3Zpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICAgIHRyYW5zaXRpb246IC4zcyBlYXNlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBzdmd7XHJcbiAgICAgIHdpZHRoOiAxZW07XHJcbiAgICAgIGhlaWdodDogMWVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmV2ZW50LWFydGlzdHtcclxuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICB9XHJcbiAgLmV2ZW50LXRpbWV7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgfVxyXG4gIC5ldmVudC1sb2NhdGlvbntcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgICZfX2hlYWRlcntcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgPiAqOmZpcnN0LW9mLXR5cGV7XHJcbiAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiIsIltjbGFzcyo9J2J0bi0nXXtcclxuICAmOmhvdmVye3RleHQtZGVjb3JhdGlvbjogbm9uZTt9XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIC8vYm9yZGVyOiBtZWRpdW0gbm9uZTtcclxufVxyXG5cclxuLmJ0bi1pY29ue1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogbWVkaXVtIG5vbmU7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgcGFkZGluZzogMS4xcmVtIDFyZW07XHJcbn1cclxuXHJcbi5idG4tZHJvcGRvd24sLmJ0bi1saW5re1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogbWVkaXVtIG5vbmU7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4uYnRuLS1ibG9ja3tcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmJ0biwgLmJ1dHRvbiwgJWJ0bntcclxuICAmOmxpbmt7XHJcbiAgICAmOmhvdmVye3RleHQtZGVjb3JhdGlvbjogbm9uZTt9XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG4gICY6aG92ZXIsJjpmb2N1c3tcclxuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWxpbmstYWN0aXZlMjtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1saW5rLWFjdGl2ZTI7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgICAvL2NvbG9yOiAjZmZmO1xyXG4gICAgLy9ib3JkZXItY29sb3I6ICRjb2xvci1zZWNvbmRhcnk7XHJcbiAgICAvL2NvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICB9XHJcbiAgJjphY3RpdmV7XHJcbiAgICAvL2NvbG9yOiAkY29sb3ItcHJpbWFyeTtcclxuICB9XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXllbGxvdztcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRpdGxlO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGZvbnQtc2l6ZTogMi43cmVtO1xyXG4gIC8vZm9udC13ZWlnaHQ6IDYwMDtcclxuICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBiYWNrZ3JvdW5kOiAkY29sb3IteWVsbG93O1xyXG4gIHBhZGRpbmc6IC45cmVtIDIuNHJlbSAuOXJlbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzLCBiYWNrZ3JvdW5kIC4zcywgYm9yZGVyLWNvbG9yIC4zcztcclxuXHJcbiAgJi0tYm9yZGVye1xyXG4gICAgJjpob3ZlciwmOmZvY3Vze1xyXG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgIH1cclxuICAgIGJvcmRlcjogNnB4IHNvbGlkICRjb2xvci1zZWN0aW9uLWJvcmRlcjtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgICBib3JkZXItd2lkdGg6IDRweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtLXNtYWxse1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS10aXRsZTI7XHJcbiAgICBwYWRkaW5nOiAuM2VtIC42ZW0gLjJlbTtcclxuICB9XHJcblxyXG4gICYtLWxhcmdle1xyXG4gICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgLy9wYWRkaW5nOiAuOGVtIC42ZW0gLjVlbTtcclxuICAgIHBhZGRpbmc6IC40ZW0gLjZlbSAuNWVtO1xyXG4gICAgLy9mb250LXdlaWdodDogNTAwO1xyXG4gICAgLy9sZXR0ZXItc3BhY2luZzogLjA1ZW07XHJcbiAgfVxyXG5cclxuICAmLm0td2hpdGV7XHJcbiAgICAmOmhvdmVye1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcclxuICAgIH1cclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgfVxyXG5cclxuICAmLm0tc2hhZG93e1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsMCwwLC40Nyk7XHJcbiAgfVxyXG4gICYubS1maXhlZHtcclxuICAgIHdpZHRoOiAyMi42cmVtO1xyXG4gIH1cclxuICAmLm0tcm91bmRlZHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xyXG4gIH1cclxuICAmLm0td2lkZXtcclxuICAgIHBhZGRpbmc6IC4yZW0gLjc1ZW0gLjI1ZW07XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRpdGxlMjtcclxuICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICB9XHJcblxyXG4gICYtLW9yYW5nZXtcclxuICAgICY6aG92ZXIsJjpmb2N1c3tcclxuICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjLWJ0bi1ob3ZlciwxMCUpO1xyXG4gICAgfVxyXG4gICAgYmFja2dyb3VuZDogJGMtYnRuLW9yYW5nZTtcclxuICB9XHJcbiAgJi0tcmVke1xyXG4gICAgJjpob3ZlciwmOmZvY3Vze1xyXG4gICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGMtYnRuLWhvdmVyLXJlZCwxMCUpO1xyXG4gICAgfVxyXG4gICAgYmFja2dyb3VuZDogJGMtYnRuLXJlZDtcclxuICB9XHJcbiAgJi0tZ3JlZW57XHJcbiAgICAmOmhvdmVyLCY6Zm9jdXN7XHJcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkYy1idG4taG92ZXIsMTAlKTtcclxuICAgIH1cclxuICAgIGJhY2tncm91bmQ6ICRjLWJ0bi1ncmVlbjtcclxuICB9XHJcbiAgJi0tYmx1ZXtcclxuICAgICY6aG92ZXIsJjpmb2N1c3tcclxuICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjLWJ0bi1ob3ZlciwxMCUpO1xyXG4gICAgfVxyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWU7XHJcbiAgfVxyXG4gICYtLWxpZ2h0LXJlZHtcclxuICAgICY6aG92ZXIsJjpmb2N1c3tcclxuICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjLWJ0bi1ob3ZlciwxMCUpO1xyXG4gICAgfVxyXG4gICAgYmFja2dyb3VuZDogJGMtYnRuLWxpZ2h0LXJlZDtcclxuICB9XHJcbiAgJi0teWVsbG93e1xyXG4gICAgJjpob3ZlciwmOmZvY3Vze1xyXG4gICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGMtYnRuLWhvdmVyLDEwJSk7XHJcbiAgICB9XHJcbiAgICBiYWNrZ3JvdW5kOiAkYy1idG4teWVsbG93O1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG5idXR0b257XHJcbiAgYm9yZGVyOiBtZWRpdW0gbm9uZTtcclxuICBzcGFue3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7fVxyXG59XHJcblxyXG5cclxuLmJ0bi1mbGF0e1xyXG4gICYuaXMtYWN0aXZle31cclxuICBAZXh0ZW5kIC5idG47XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBjb2xvcjogJGNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5idG4uYnRuLS1ncm91cHtcclxuXHJcbiAgJi5idG4tLWZpcmV7XHJcbiAgICAmOmFmdGVye1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC0xMnB4O1xyXG4gICAgICBsZWZ0OiAtMTJweDtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDI0cHgpO1xyXG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDI0cHgpO1xyXG4gICAgICBib3JkZXI6IDVweCBzb2xpZDtcclxuICAgIH1cclxuICAgICY6YmVmb3Jle1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgbGVmdDotNXB4O1xyXG4gICAgICB0b3A6LTEwcmVtO1xyXG4gICAgICB0b3A6IC0xMTAlO1xyXG4gICAgICAvL3RvcDogYXV0bztcclxuICAgICAgLy9ib3R0b206MDtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDEwcHgpO1xyXG4gICAgICBoZWlnaHQ6IDIxMCU7XHJcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvY29tbW9uL2ZpcmUuc3ZnKSA1MCUgMCBuby1yZXBlYXQ7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgbWFyZ2luLXRvcDogNnJlbTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBtYXgtd2lkdGg6IDQwcmVtO1xyXG4gICAgZm9udC1zaXplOiAzLjJyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG5cclxuICAgICY6aG92ZXJ7XHJcbiAgICAgID4gKntcclxuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGNvbG9yLWxpbmstYWN0aXZlMiwwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+ICp7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1vcmFuZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgJi5idG4tLW9yYW5nZXtcclxuICAgICAgJjpob3ZlciwmOmZvY3Vze1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkYy1idG4tb3JhbmdlLDEwJSk7XHJcbiAgICAgICAgPiAqe1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjLWJ0bi1ob3ZlciwxMCUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBiYWNrZ3JvdW5kOiAkYy1idG4tb3JhbmdlO1xyXG4gICAgICA+KntcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1idG4tb3JhbmdlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmJ0bi0tcmVke1xyXG4gICAgICAmOmhvdmVyLCY6Zm9jdXN7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjLWJ0bi1yZWQsMTAlKTtcclxuICAgICAgICA+ICp7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGMtYnRuLWhvdmVyLXJlZCwxMCUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBiYWNrZ3JvdW5kOiAkYy1idG4tcmVkO1xyXG4gICAgICA+KntcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1idG4tcmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmJ0bi0tZ3JlZW57XHJcbiAgICAgICY6aG92ZXIsJjpmb2N1c3tcclxuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGMtYnRuLWdyZWVuLDEwJSk7XHJcbiAgICAgICAgPiAqe1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjLWJ0bi1ob3ZlciwxMCUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBiYWNrZ3JvdW5kOiAkYy1idG4tZ3JlZW47XHJcbiAgICAgID4gKntcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1idG4tZ3JlZW47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYuYnRuLS1ibHVle1xyXG4gICAgICAmOmhvdmVyLCY6Zm9jdXN7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjb2xvci1ibHVlLDEwJSk7XHJcbiAgICAgICAgPiAqe1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjLWJ0bi1ob3ZlciwxMCUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZTtcclxuICAgICAgPiAqe1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmJ0bi0teWVsbG93e1xyXG4gICAgICAmOmhvdmVyLCY6Zm9jdXN7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRjLWJ0bi15ZWxsb3csNSUpO1xyXG4gICAgICAgID4gKntcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkYy1idG4taG92ZXIsNSUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBiYWNrZ3JvdW5kOiAkYy1idG4teWVsbG93O1xyXG4gICAgICA+ICp7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGMtYnRuLXllbGxvdztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5idG4tLWxpZ2h0LXJlZHtcclxuICAgICAgJjpob3ZlciwmOmZvY3Vze1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkYy1idG4tbGlnaHQtcmVkLDUlKTtcclxuICAgICAgICA+ICp7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGMtYnRuLWhvdmVyLDUlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgYmFja2dyb3VuZDogJGMtYnRuLWxpZ2h0LXJlZDtcclxuICAgICAgPiAqe1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWJ0bi1saWdodC1yZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgJi5fbm8tZmlyZXtcclxuICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgICAgfVxyXG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gICYubS13aWRle1xyXG4gICAgbWF4LXdpZHRoOiA1Mi40cmVtO1xyXG4gIH1cclxuXHJcbiAgJi5idG4tLWFydGlzdHtcclxuICAgIC5idG5fX2ljbntcclxuICAgICAgaW1ne1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDlyZW07XHJcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcclxuICAgICAgICBAaW5jbHVkZSBpbWFnZS1yZW5kZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgJi5idG4tLWd1ZXN0e1xyXG4gICAgLmJ0bl9faWNue1xyXG4gICAgICBpbWd7XHJcbiAgICAgICAgbWF4LWhlaWdodDogOXJlbTtcclxuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgIEBpbmNsdWRlIGltYWdlLXJlbmRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5idG4tLXdoYXRzYXBwe1xyXG4gICAgLmJ0bl9faWNue1xyXG4gICAgICBpbWd7XHJcbiAgICAgICAgbWF4LWhlaWdodDogNy4ycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYm9yZGVyLXdpZHRoOiA1cHg7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMjQxRTFFO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcGFkZGluZzogMDtcclxuICBmb250LXNpemU6IDMuMnJlbTtcclxuICBsaW5lLWhlaWdodDogMS4yO1xyXG5cclxuICAuYnRuX19pY257XHJcbiAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMyNDFFMUU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIG1heC13aWR0aDogMTVyZW07XHJcbiAgICB3aWR0aDogMjklO1xyXG4gICAgZmxleDogMCAwIDI5JTtcclxuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAuYnRuX190ZXh0e1xyXG5cclxuICAgIGZsZXg6IDE7XHJcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAuM3JlbTtcclxuXHJcbiAgICBzcGFue1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG4gICAgJi5idG4tLWZpcmV7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgIC8vbWFyZ2luLWJvdHRvbTogNnJlbTtcclxuICAgICAgJiArICZ7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogOHJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4uYnRuLXN1Ym1pdHtcclxuICBmb250LXNpemU6IDMuNnJlbTtcclxufVxyXG5cclxuXHJcbi5idG4uYnRuLWV2ZW50e1xyXG4gICY6aG92ZXIsJjpmb2N1c3tcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci15ZWxsb3c7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxLjVyZW0gcmdiYSgkY29sb3IteWVsbG93LC43KTtcclxuICB9XHJcbiAgZm9udC1zaXplOiAzLjVyZW07XHJcbiAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gIC5fbGFyZ2V7Zm9udC1zaXplOiAxMzUlO31cclxuXHJcbiAgQGF0LXJvb3QgLnMtaGVybyAme1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpe1xyXG4gICAgICBtaW4td2lkdGg6IDQ1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgIGZvbnQtc2l6ZTogMi44cmVtO1xyXG4gIH1cclxufSIsIi5zbGljay1zbGlkZXIge1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XHJcbiAgLWtodG1sLXVzZXItc2VsZWN0OiB0ZXh0O1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IHRleHQ7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiB0ZXh0O1xyXG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xyXG59XHJcbi5zbGljay1saXN0LmRyYWdnYWJsZSB7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuXHJcbiVidl9oaWRkZW4ge1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG4lZmlsbGVkX29iaiB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuJXNsaWRlckgxMDB7XHJcbiAgLnNsaWNrLXRyYWNre1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAuc2xpY2stc2xpZGV7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICB9XHJcbiAgLnNsaWNrLXRyYWNrLC5zbGljay1saXN0e1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuICAuc2xpY2stc2xpZGV7XHJcbiAgICA+ZGl2e1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgID4gZGl2e1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNsaWRlci1wcm9ncmVzc2l2ZXtcclxuICBvcGFjaXR5OiAwO1xyXG4gIGhlaWdodDowO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB0cmFuc2l0aW9uOmFsbCAuNXMgZWFzZTtcclxuICAvL21heC13aWR0aDogMTAwJTtcclxuXHJcbiAgJi5zbGljay1pbml0aWFsaXplZCB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi5zbGljay1zbGlkZXJ7XHJcblxyXG5cclxuICAmLmhhcy1wb3BvdmVye1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogNTA7XHJcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xyXG4gICAgLnNsaWNrLXRyYWNrLC5zbGljay1saXN0e1xyXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc2xpZGVyLXZpc2libGV7XHJcbiAgICAuc2xpY2stdHJhY2ssLnNsaWNrLWxpc3R7XHJcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4uc2xpY2stZG90c3tcclxuICBmb250LXNpemU6IDA7XHJcbiAgcGFkZGluZy10b3A6IDFyZW07XHJcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbiAgbGl7XHJcbiAgICAmLnNsaWNrLWFjdGl2ZXtcclxuICAgICAgYnV0dG9ue1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IC41cmVtO1xyXG4gICAgYnV0dG9ue1xyXG4gICAgICB3aWR0aDogMTJweDtcclxuICAgICAgaGVpZ2h0OiAxMnB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bil7XHJcbiAgICAgIHBhZGRpbmc6IC42cmVtO1xyXG4gICAgICBidXR0b257XHJcbiAgICAgICAgd2lkdGg6IDEycHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYi1zZWN0aW9uLS1oZXJve1xyXG5cclxuICAvL2hlaWdodDogMTAwdmg7XHJcbiAgLy9taW4taGVpZ2h0OiAxMDAlO1xyXG5cclxuICAuc2xpY2stZG90c3tcclxuICAgIC8vd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206M3JlbTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5iLXNsaWRlciwuYi1oZXJvLXNsaWRlcntcclxuXHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAvL29wYWNpdHk6IDA7XHJcbiAgICAvL3Zpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIC8vdHJhbnNpdGlvbjphbGwgMS4ycyBlYXNlO1xyXG5cclxuICAgICYuc2xpY2staW5pdGlhbGl6ZWQge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pe1xyXG5cclxuICAgIC5iLWhlcm8tc2xpZGVye1xyXG4gICAgICAuc2xpY2stc2xpZGV7XHJcbiAgICAgICAgLnNsaWRlLWltYWdle1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNzAlIDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZpZGVvLGlmcmFtZSwuZW1iZWQtcGxheWVye1xyXG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJnLWltZywuc2xpZGUtaW1hZ2V7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDcwJSAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgIC5zbGljay1kb3Rze1xyXG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgIHJpZ2h0OiAycmVtO1xyXG4gICAgICBib3R0b206IDJyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uYi1zbGlkZXJ7XHJcblxyXG4gICYtd3Jwe1xyXG4gICAgcGFkZGluZy1ib3R0b206IDRyZW07XHJcbiAgfVxyXG4gIC8vcGFkZGluZy1ib3R0b206IDVyZW07XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAuc2xpY2stbmF2e1xyXG4gICAgJjpob3ZlcntcclxuICAgICAgb3BhY2l0eTogLjg7XHJcbiAgICB9XHJcbiAgICB6LWluZGV4OiA1MDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIHN2Z3tcclxuICAgICAgd2lkdGg6IDEuN2VtO1xyXG4gICAgICBoZWlnaHQ6IDIuOGVtO1xyXG4gICAgfVxyXG5cclxuICAgICYuc2xpY2stcHJldntcclxuICAgICAgbGVmdDogMi41cmVtO1xyXG4gICAgICBib3R0b206IDMuNnJlbTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDIuNXJlbTtcclxuICAgIH1cclxuICAgICYuc2xpY2stbmV4dHtcclxuICAgICAgYm90dG9tOiA0cmVtO1xyXG4gICAgICByaWdodDogMi41cmVtO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuNXJlbTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgJi13cnB7XHJcbiAgICAgICY6bGFzdC1vZi10eXBle1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICB9XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGljay1uYXZ7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgJi5zbGljay1wcmV2e1xyXG4gICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBsZWZ0OiAtMXJlbTtcclxuICAgICAgICAgIHRvcDogLTY2JTtcclxuICAgICAgICAgIHdpZHRoOiA0cmVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAyMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICBsZWZ0OiAycmVtO1xyXG4gICAgICAgIGJvdHRvbTogMnJlbTtcclxuICAgICAgfVxyXG4gICAgICAmLnNsaWNrLW5leHR7XHJcbiAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcclxuICAgICAgICAgIHRvcDogLTY2JTtcclxuICAgICAgICAgIHdpZHRoOiA0cmVtO1xyXG4gICAgICAgICAgaGVpZ2h0OiAyMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDJyZW07XHJcbiAgICAgICAgYm90dG9tOiAycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbi5zbGlkZXItaXRlbXtcclxuICBAYXQtcm9vdCAuYi1zbGlkZXItbmV3cy10aHVtYiAme1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgfVxyXG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgJl9fcGlje31cclxuXHJcbiAgLmltZy13cnB7XHJcbiAgICBib3JkZXI6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgICAgYm9yZGVyLXdpZHRoOiA0cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pbmZve1xyXG4gICAgbWluLWhlaWdodDogMTFyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAxLjRyZW0gNnJlbTtcclxuICAgIHotaW5kZXg6IDUwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgbGVmdDogMi41cmVtO1xyXG4gICAgcmlnaHQ6IDIuNXJlbTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGJhY2tncm91bmQ6ICNFNUIxNkE7XHJcbiAgICBib3JkZXI6IDZweCBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgICAgYm9yZGVyLXdpZHRoOiA0cHg7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKXtcclxuICAgICAgbWluLWhlaWdodDogN3JlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3RpdGxle1xyXG4gICAgQGluY2x1ZGUgdGV4dHNsaWNlKDEpO1xyXG4gICAgQGV4dGVuZCAldGl0bGU7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgZm9udC1zaXplOiA0LjVyZW07XHJcbiAgICAvL2xpbmUtaGVpZ2h0OiAuOTtcclxuICAgIG1hcmdpbi10b3A6IC0uMTVlbTtcclxuICB9XHJcblxyXG4gICZfX3R4dHtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGF7XHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICZfX2luZm97XHJcbiAgICAgIGJvcmRlci10b3A6MDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRyZW07XHJcbiAgICB9XHJcbiAgICAmX190aXRsZXtcclxuICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICB9XHJcbiAgICAmX190eHR7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4uYi1zbGlkZXItbmV3cy10aHVtYntcclxuICBtYXJnaW46IC0xLjVyZW07XHJcblxyXG4gIC5pbWctd3JwLC5zbGlkZXItaXRlbV9fcGlje1xyXG4gICAgLy9ib3JkZXI6bm9uZTtcclxuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMgZWFzZTtcclxuICB9XHJcblxyXG4gIC5pbWctd3Jwe1xyXG4gICAgLy9ib3gtc2hhZG93OiAwIDAgMCA2cHggJGNvbG9yLXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEwMCU7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC0gMTJweCk7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKXtcclxuICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAtIDhweCk7XHJcbiAgICB9XHJcbiAgICA+aW1ne1xyXG4gICAgICBAaW5jbHVkZSBhYnNvbHV0ZVN0cmV0Y2g7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNsaWNrLXNsaWRle1xyXG5cclxuICAgID5kaXZ7XHJcbiAgICAgIHBhZGRpbmc6IDEuNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVye1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIC5pbWctd3JwLC5zbGlkZXItaXRlbV9fcGlje1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLW9yYW5nZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc2xpY2stY3VycmVudHtcclxuICAgICAgLmltZy13cnAsLnNsaWRlci1pdGVtX19waWN7XHJcbiAgICAgICAgLy9ib3JkZXItY29sb3I6ICRjb2xvci1vcmFuZ2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSl7XHJcbiAgICBtYXJnaW46IC0uNnJlbTtcclxuICAgIC5zbGljay1zbGlkZXtcclxuICAgICAgPiBkaXZ7XHJcbiAgICAgICAgcGFkZGluZzogLjZyZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59IiwiLnBhZ2luYXRpb257XHJcblxyXG4gIC5uYXYtbGlua3N7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICAucGFnZS1udW1iZXJze1xyXG4gICAgYmFja2dyb3VuZDogI0ZDRjlFODtcclxuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xyXG4gICAgYm9yZGVyOiAuNnJlbSBzb2xpZCAkY29sb3Itc2VjdGlvbi1ib3JkZXI7XHJcbiAgICBtaW4td2lkdGg6IDZyZW07XHJcbiAgICBtaW4taGVpZ2h0OiA2cmVtO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICBAZXh0ZW5kICV0aXRsZTI7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcblxyXG4gICAgJi5jdXJyZW50e1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3IteWVsbG93O1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXJ7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG5cclxuICAgICYucHJldiwmLm5leHQsJi5kb3Rze1xyXG4gICAgICAmOmhvdmVye1xyXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgICYuZG90c3tcclxuICAgICAgbWluLXdpZHRoOiA0cmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYucHJldiwmLm5leHR7XHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgb3BhY2l0eTogLjc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdmd7XHJcbiAgICAgIHdpZHRoOiAxZW07XHJcbiAgICAgIGhlaWdodDogMWVtO1xyXG4gICAgfVxyXG5cclxuICAgIGEsJjpsaW5re1xyXG4gICAgICAmOmhvdmVye1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgICBjb2xvcjogY3VycmVudENvbG9yO1xyXG4gICAgICBAaW5jbHVkZSBub2RlY29yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgIC5wYWdlLW51bWJlcnN7XHJcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgICAgbWluLXdpZHRoOiA0cmVtO1xyXG4gICAgICBtaW4taGVpZ2h0OiA0cmVtO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDJweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xyXG5cclxuICAgICAgJi5kb3RzLCYucHJldiwmLm5leHR7XHJcbiAgICAgICAgbWluLXdpZHRoOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcbn0iLCIucy1zaG93Y2FzZXtcclxuICA+IGRpdiArIGRpdntcclxuICAgIG1hcmdpbi10b3A6IDVyZW07XHJcbiAgfVxyXG5cclxuICAmLWxpc3R7XHJcblxyXG4gIH1cclxuXHJcbiAgJl9fbGlzdC1yb3d7XHJcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcclxuICB9XHJcblxyXG4gICZfX2xpc3QteWVhcntcclxuICAgIEBleHRlbmQgJXRpdGxlO1xyXG4gICAgZm9udC1zaXplOiA0LjVyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KXtcclxuICAgICZfX2xpc3QteWVhcntcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4uYi1jaXR5LWxpc3R7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgLy93aWR0aDogMTAwJTtcclxuICBmb250LXNpemU6IDA7XHJcbiAgbWFyZ2luOiAtMXJlbTtcclxuICAvL21hcmdpbi1sZWZ0OiAtMXJlbTtcclxuICAvL21hcmdpbi1yaWdodDogLTFyZW07XHJcbiAgbGl7XHJcbiAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgbWluLXdpZHRoOiAyMCU7XHJcbiAgfVxyXG4gIGF7XHJcbiAgICBAZXh0ZW5kIC5idG47XHJcbiAgICBAZXh0ZW5kIC5idG4tLWJvcmRlcjtcclxuICAgIEBleHRlbmQgLmJ0bi0tbGFyZ2U7XHJcbiAgICBAZXh0ZW5kICV0aXRsZTI7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXRpdGxlMjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5zaG93Y2FzZS1tYXB7XHJcblxyXG4gICNzaG93Y2FzZS1tYXB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjQzLDI0NiwyNTApO1xyXG4gIH1cclxuXHJcbiAgLmNvdW50cmllc3tcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDZweDtcclxuICAgIHRvcDogMTJweDtcclxuICAgIHotaW5kZXg6IDU7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MywyNTMsMjUzLDEpO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLC4wNSk7XHJcblxyXG4gICAgLmNvdW50cnktc2VhcmNoe1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICAgIHBhZGRpbmc6IDEuNXJlbTtcclxuICAgICAgZm9udC1zaXplOiAyLjJyZW07XHJcbiAgICAgIGNvbG9yOiAjY2NjO1xyXG4gICAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMHB4IHJnYmEoMzMsMzMsMzMsLjA1JSk7XHJcbiAgICAgIEBpbmNsdWRlIGZvcm0tcGxhY2Vob2xlcntcclxuICAgICAgICBjb2xvcjogI2NjYztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxpe1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAmLmN1cnJlbnQsJi5zZWxlY3RlZCwmOmhvdmVye1xyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NCwyNDQsMjQ0LDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGF7XHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgY29sb3I6IHJnYmEoNTksNTksNTksMSk7XHJcbiAgICAgIH1cclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGNvbG9yOiByZ2JhKDk5LDk5LDk5LDEpO1xyXG4gICAgICBwYWRkaW5nOiAxLjVyZW07XHJcbiAgICAgIEBpbmNsdWRlIG5vZGVjb3I7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiLnMtcHJvZ3JhbXtcclxuXHJcbiAgJl9fZXZlbnR7XHJcblxyXG4gICAgcGFkZGluZy10b3A6IDFyZW07XHJcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTtcclxuXHJcbiAgICAvLy0tdGhlbWVcclxuICAgICYuX2phenp7XHJcbiAgICAgIC5iLWJveC1wZXJzb24tbGlzdCwuYi1ib3gtZXZlbnQtbGlzdHtcclxuICAgICAgICA+LmNvbHVtbiw+ZGl2e1xyXG4gICAgICAgICAgJjpudGgtY2hpbGQoMil7XHJcbiAgICAgICAgICAgIC8vLmItYm94LWV2ZW50X19oZWFkZXJ7YmFja2dyb3VuZDogIzM4OTI1MDt9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLl9yb2Nre1xyXG4gICAgICAuYi1ib3gtcGVyc29uLWxpc3QsLmItYm94LWV2ZW50LWxpc3R7XHJcbiAgICAgICAgPi5jb2x1bW4sPmRpdntcclxuICAgICAgICAgICY6bnRoLWNoaWxkKDIpe1xyXG4gICAgICAgICAgICAvLy5iLWJveC1ldmVudF9faGVhZGVye2JhY2tncm91bmQ6ICNFNjgzNzY7fVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8tLVxyXG5cclxuICAgIC5zLWNvbnRlbnRfX2JvZHl7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG4uYi1wcm9ncmFtLWJ0bi1saXN0e1xyXG4gIEBleHRlbmQgLmlubGluZS1saXN0O1xyXG4gIGZvbnQtc2l6ZTogMDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWFyZ2luOiAwIC0xcmVtO1xyXG5cclxuICAmLl9qYXp6e1xyXG4gICAgLmJ0bntcclxuICAgICAgQGV4dGVuZCAuYnRuLS1ncmVlbjtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tamF6ei1jb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG4gICYuX3JvY2t7XHJcbiAgICAuYnRue1xyXG4gICAgICBAZXh0ZW5kIC5idG4tLXJlZDtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcm9jay1jb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaXtcclxuICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICBtaW4td2lkdGg6IDIwJTtcclxuICB9XHJcblxyXG4gIC5idG57XHJcbiAgICBAZXh0ZW5kIC5tLXdpZGU7XHJcbiAgICBAZXh0ZW5kIC5idG4tLWJvcmRlcjtcclxuICAgIC8vQGV4dGVuZCAuYnRuLS1sYXJnZTtcclxuICAgIG1pbi13aWR0aDogMjEuNnJlbTtcclxuICAgIEBleHRlbmQgJXRpdGxlMjtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpe1xyXG4gICAgLmJ0bntcclxuICAgICAgbWluLXdpZHRoOiAxNXJlbTtcclxuICAgIH1cclxuICB9XHJcbn0iLCIuX2JnLWdyZWVuLC5fYmctamF6eiwgJWJnLWphenp7YmFja2dyb3VuZDogJGNvbG9yLWdyZWVuO2JhY2tncm91bmQ6IHZhcigtLWphenotY29sb3IpO2NvbG9yOiAjRkNGOUU4O31cclxuLl9iZy1yZWQsLl9iZy1yb2NrLCAlYmctcm9ja3tiYWNrZ3JvdW5kOiAkY29sb3ItcmVkO2JhY2tncm91bmQ6IHZhcigtLXJvY2stY29sb3IpO2NvbG9yOiAjRkNGOUU4O31cclxuXHJcblxyXG4udGhlbWUtLWphenp7XHJcbiAgLmItc3VibWVudSwuYi1oZWFkZXJfX21lbnUtbmF2IHVsIC5iLXN1Ym1lbnV7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW47XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1qYXp6LWNvbG9yKTtcclxuICB9XHJcbiAgLl9zdHlsZS1iZ3tiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW47YmFja2dyb3VuZDogdmFyKC0tamF6ei1jb2xvcik7fVxyXG4gIC5fc3R5bGUtY29sb3J7Y29sb3I6ICRjb2xvci1ncmVlbjtjb2xvcjogdmFyKC0tamF6ei1jb2xvcik7fVxyXG59XHJcblxyXG4udGhlbWUtLXJvY2t7XHJcbiAgLmItc3VibWVudSwuYi1oZWFkZXJfX21lbnUtbmF2IHVsIC5iLXN1Ym1lbnV7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcmVkO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcm9jay1jb2xvcik7XHJcbiAgfVxyXG4gIC5fc3R5bGUtYmd7YmFja2dyb3VuZDogJGNvbG9yLXJlZDtiYWNrZ3JvdW5kOiB2YXIoLS1yb2NrLWNvbG9yKTt9XHJcbiAgLl9zdHlsZS1jb2xvcntjb2xvcjogJGNvbG9yLXJlZDtjb2xvcjogdmFyKC0tcm9jay1jb2xvcik7fVxyXG59XHJcblxyXG4laGVhZGVyX21lbnVfYW5pbWF0aW9ue1xyXG4gIC5iLWhlYWRlcl9fbWVudS1uYXZ7XHJcbiAgICA+dWw+bGl7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XHJcbiAgICAgICY6bm90KC5pcy1hY3RpdmUpe1xyXG4gICAgICAgID5he1xyXG4gICAgICAgICAgJjpob3ZlciwmOmZvY3Vze1xyXG4gICAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICB3aWR0aDogMTUwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb2xvcjojMkMxQzIxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJjphZnRlcntcclxuICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgbGVmdDogLTUwJTtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXcoMzBkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjZzO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcclxuICAgICAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1saW5rLWFjdGl2ZTtcclxuICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgcGFkZGluZzogMXJlbSAxLjVyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vL0BleHRlbmQgJWhlYWRlcl9tZW51X2FuaW1hdGlvbjsiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFjQUE7Ozs7O0dBS0c7QXVHd05ILG1FQUFtRTtBQVFuRSxtRUFBbUU7QUFFbkUsbUVBQW1FO0FBaUJuRSxtRUFBbUU7QUFFbkUsbUVBQW1FO0FBRW5FLGdFQUFnRTtBQWtCaEUsNkJBQTZCO0FBZTdCLDBCQUEwQjtBQXlDMUIsMkJBQTJCO0FBUTNCLDBCQUEwQjtBQWlDMUIsbUVBQW1FO0FBRW5FLG1FQUFtRTtBQUVuRSxjQUFjO0FBYWQscUJBQXFCO0FBU3JCLG1FQUFtRTtBQUVuRSxtRUFBbUU7QUFTbkUsbUVBQW1FO0FBSW5FLG1FQUFtRTtBQzFTbkU7Ozs7RUFJRTtBQ2xIRiw0QkFBNEI7QUFDNUIsQUFBQSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNO0FBQzdDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVB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Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsQ0E2Q08sTUFBTSxFQURSLFVBQVU7QUEzQ3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsQ0E0Q0QsTUFBTSxFQURBLFVBQVU7QUEzQ3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsQ0E0Q08sTUFBTSxFQURSLFVBQVU7QUExQ3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxjQUFDLEFBQUEsQ0EyQ0QsTUFBTSxFQURBLFVBQVU7QUExQ3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxjQUFDLEFBQUEsQ0EyQ08sTUFBTSxFQURSLFVBQVU7QUF6Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxHQUFDLEFBQUEsQ0EwQ0QsTUFBTSxFQURBLFVBQVU7QUF6Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxHQUFDLEFBQUEsQ0EwQ08sTUFBTSxFQURSLFVBQVU7QUF4Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsQ0F5Q0QsTUFBTSxFQURBLFVBQVU7QUF4Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsQ0F5Q08sTUFBTSxFQURSLFVBQVU7QUF2Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsQ0F3Q0QsTUFBTSxFQURBLFVBQVU7QUF2Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsQ0F3Q08sTUFBTSxFQURSLFVBQVU7QUF0Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsQ0F1Q0QsTUFBTSxFQURBLFVBQVU7QUF0Q3JCLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsQ0F1Q08sTUFBTSxFQURSLFVBQVU7QUFyQ3JCLFFBQVEsQUFzQ0gsTUFBTSxFQURBLFVBQVU7QUFyQ3JCLFFBQVEsQUFzQ0ssTUFBTSxFQURSLFVBQVUsQ0FyQ1osbUJBQW1CLEFBQUEs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 */