/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./data/www/templates/asgard/obchod-samsung.cz/sass/ajax-basket-header.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Retrieves the next smaller breakpoint from the given breakpoint.
 *
 * @param {String} $breakpoint - The breakpoint for which to find the next smaller breakpoint.
 * @return {String|null} - The next smaller breakpoint, or null if no smaller breakpoint is available.
 */
/**
 * Retrieves the next larger breakpoint from the $grid-breakpoints map.
 *
 * @function get-bigger-breakpoint
 * @param {String} $breakpoint - The current breakpoint to find the next larger one for.
 * @return {String | null} - The next larger breakpoint or null if the current breakpoint is the largest or not found.
 */
/**
 * Reset iSpace custom form input styles to be able to design special inputs more easily
 */
/**
 * Styles to hide the scrollbar but still allow scrolling
 */
.header-cart {
  overflow: hidden;
}
.header-cart--l {
  max-width: 50rem;
  width: 100%;
}
.header-cart__main {
  overflow: auto;
  max-height: calc(90vh - 5.5rem - 8rem);
}
.header-cart__main::-webkit-scrollbar {
  width: 4px;
}
.header-cart__main::-webkit-scrollbar-track {
  background: transparent;
}
.header-cart__main::-webkit-scrollbar-thumb {
  background: #000;
  border-radius: 2px;
}
.header-cart__main::-webkit-scrollbar-thumb:hover {
  background: #000;
}
.header-cart__message .message.ok {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.header-cart__table {
  width: 100%;
}
.header-cart__table-cell {
  padding: 0.5rem 0;
}
.header-cart__table-cell + .header-cart__table-cell {
  padding-left: 1rem;
}
.header-cart__footer {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  left: 0;
  padding-top: 3rem;
  position: relative;
  width: 100%;
}
.header-cart__footer::before {
  background-color: #dedede;
  content: "";
  height: 1px;
  left: -10%;
  position: absolute;
  top: 1rem;
  width: 130%;
}
.header-cart__btn.disabled {
  background-color: #dedede;
  pointer-events: none;
}
@media (min-width: 1200px) {
  .header-cart__main {
    max-height: calc(90vh - 14.5rem);
  }
}

.header-cart-item .header-cart-item-delete-wrapper {
  height: 200em;
  max-height: 100%;
  max-height: calc(var(--start-height, 100%) - 10px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 1;
  transition: max-height 0.15s ease-in-out;
}
.header-cart-item__delete .header-cart-item-delete-wrapper {
  max-height: 0;
  opacity: 0;
}
.header-cart-item__link {
  align-items: center;
  display: flex;
  gap: 0.8rem;
  text-decoration: none;
}
.header-cart-item__img {
  width: 5rem;
  height: 5rem;
  display: block;
  position: relative;
}
.header-cart-item__img img {
  display: block;
  height: 100%;
  object-fit: contain;
  position: absolute;
  width: 100%;
}
.header-cart-item__text {
  flex: 1;
}
.header-cart-item__name {
  display: block;
}
.header-cart-item__variant {
  color: #747474;
  display: block;
  font-size: 1.2rem;
}
.header-cart-item__quantity {
  max-width: 5rem;
  text-align: right;
  width: 12%;
  white-space: nowrap;
}
.header-cart-item__price {
  text-align: right;
  width: 20%;
  white-space: nowrap;
}
.header-cart--l .header-cart-item__price {
  width: 30%;
}
.header-cart-item__total-price {
  display: block;
  white-space: nowrap;
}
.header-cart-item__quantity > *:first-child, .header-cart-item__price > *:first-child {
  display: block;
  padding-top: 1px;
}
.header-cart-item__vat-price {
  color: #747474;
  display: block;
  white-space: nowrap;
}
.header-cart-item__actions {
  text-align: right;
  width: 3rem;
}
.header-cart-item__remove {
  color: #747474;
  display: inline-block;
  stroke-width: 2;
}
@media (hover: hover) {
  .header-cart-item__link:hover .header-cart-item__name {
    text-decoration: underline;
  }
}

@media (min-width: 1200px) {
  .header-cart {
    padding-inline-end: 0;
  }
}
.header-cart.is-active {
  display: grid;
  grid-template-rows: 1fr auto auto;
  gap: 2rem;
}
.header-cart__main {
  max-height: none;
}
@media (min-width: 1200px) {
  .header-cart__main {
    padding-inline-end: 2rem;
  }
}
@media (max-width: 1199.98px) {
  .header-cart__main {
    padding-inline-end: 6px;
    margin-inline-end: -6px;
  }
}
.header-cart-item__quantity, .header-cart-item__price, .header-cart-item__actions {
  width: max-content;
}
.header-cart-item__quantity > *:first-child, .header-cart-item__price > *:first-child {
  padding-block-start: 0;
}
.header-cart-item__link {
  align-items: start;
}
.header-cart-item__price {
  color: #000;
}
.header-cart-item__vat-price {
  font-size: 1.2rem;
}
.header-cart__table-cell {
  vertical-align: top;
}
@media (min-width: 1200px) {
  .header-cart__price, .header-cart__footer {
    margin-inline-end: 2rem;
    width: auto;
  }
}
.header-cart__price {
  border-radius: 8px;
  background-color: #f4f4f4;
  padding: 2rem;
}
.header-cart__price > * {
  display: grid;
  grid-template-columns: auto 1fr;
}
.header-cart__price > * em {
  color: #000;
  font-style: normal;
  justify-self: end;
}
.header-cart__price--incl-vat {
  font-size: 1.6rem;
  font-weight: normal;
  font-variation-settings: "wght" 700;
}
.header-cart__price--excl-vat {
  border-block-start: 1px solid #dedede;
  margin-block-start: 0.5rem;
  padding-block-start: 0.5rem;
  font-size: 1.4rem;
  font-weight: normal;
  font-variation-settings: "wght" 400;
  opacity: 0.6;
}
.header-cart__footer {
  padding: 0;
}
.header-cart__footer::before {
  display: none;
  padding-block-start: 0;
}
.header-cart__btn {
  width: 100%;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLm9iY2hvZC1zYW1zdW5nLmN6LmFzZ2FyZC5hamF4LWJhc2tldC1oZWFkZXIuNTRlMGJlMTNkODcyNzExNWRiMjcuY3NzIiwibWFwcGluZ3MiOiI7OztBQUdBOzs7OztFQUFBO0FBaUJBOzs7Ozs7RUFBQTtBQytQQTs7RUFBQTtBQStIQTs7RUFBQTtBQ2haQTtFQUNJO0FDa0JKO0FEaEJJO0VBQ0k7RUFDQTtBQ2tCUjtBRGZJO0VFQUE7RUZHSTtBQ2dCUjtBQ2pCSTtFQUlRO0FEZ0JaO0FDWkk7RUFDSTtBRGNSO0FDWEk7RUFDSSxnQkNvTVU7RURuTVY7QURhUjtBQ1ZJO0VBQ0ksZ0JDK0xVO0FGbkxsQjtBRHhCWTtFRXVFSjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRDVDUjtBRDNCSTtFQUNJO0FDNkJSO0FEMUJJO0VBQ0k7QUM0QlI7QUR6Qkk7RUFDSTtBQzJCUjtBRHhCSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDMEJSO0FEeEJRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUMwQlo7QUR0Qkk7RUFDSTtFQUNBO0FDd0JSO0FHbkJJO0VKREk7SUFDSTtFQ3VCVjtBQUNGOztBSXBGSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSnVGUjtBSXBGSTtFQUNJO0VBQ0E7QUpzRlI7QUluRkk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBSnFGUjtBSWxGSTtFSHRCQSxXR3VCb0I7RUh0QnBCLFlHc0JvQjtFQUVoQjtFQUNBO0FKb0ZSO0FJbEZRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSm9GWjtBSWhGSTtFQUNJO0FKa0ZSO0FJL0VJO0VBQ0k7QUppRlI7QUk5RUk7RUFDSTtFQUNBO0VBQ0EsaUJGakJPO0FGaUdmO0FJN0VJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUorRVI7QUk1RUk7RUFDSTtFQUNBO0VBQ0E7QUo4RVI7QUk1RVE7RUFDSTtBSjhFWjtBSTFFSTtFQUNJO0VBQ0E7QUo0RVI7QUl2RVE7RUFDSTtFQUNBO0FKeUVaO0FJckVJO0VBQ0k7RUFDQTtFQUNBO0FKdUVSO0FJcEVJO0VBQ0k7RUFDQTtBSnNFUjtBSW5FSTtFQUNJO0VBQ0E7RUFDQTtBSnFFUjtBSWxFSTtFQUVRO0lBQ0k7RUptRWQ7QUFDRjs7QUcvR0k7RUU3REo7SUFFUTtFTCtLTjtBQUNGO0FLN0tJO0VBQ0k7RUFDQTtFQUNBO0FMK0tSO0FLNUtJO0VBQ0k7QUw4S1I7QUc3SEk7RUVsREE7SUFJUTtFTCtLVjtBQUNGO0FHckhJO0VFL0RBO0lBUVE7SUFDQTtFTGdMVjtBQUNGO0FLNUtRO0VBR0k7QUw0S1o7QUt2S1k7RUFDSTtBTHlLaEI7QUtyS1E7RUFDSTtBTHVLWjtBS3BLUTtFQUNJO0FMc0taO0FLbktRO0VBQ0k7QUxxS1o7QUtqS0k7RUFDSTtBTG1LUjtBRzFKSTtFRU5BO0lBR1E7SUFDQTtFTGlLVjtBQUNGO0FLOUpJO0VBQ0ksa0JIZ0VnQjtFRy9EaEI7RUFDQTtBTGdLUjtBSzlKUTtFQUNJO0VBQ0E7QUxnS1o7QUs5Slk7RUFDSTtFQUNBO0VBQ0E7QUxnS2hCO0FLNUpRO0VBQ0k7RUFDQTtFQUNBO0FMOEpaO0FLM0pRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUw2Slo7QUt6Skk7RUFDSTtBTDJKUjtBS3pKUTtFQUNJO0VBQ0E7QUwySlo7QUt2Skk7RUFDSTtBTHlKUixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9vYmNob2Qtc2Ftc3VuZy5jei9zYXNzL2FwcC9hYnN0cmFjdHMvX2Zucy5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvb2JjaG9kLXNhbXN1bmcuY3ovc2Fzcy9hcHAvYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2RlZmF1bHQvc2Fzcy9oZWFkZXItY2FydC9faGVhZGVyLWNhcnQuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL29iY2hvZC1zYW1zdW5nLmN6L3Nhc3MvYWpheC1iYXNrZXQtaGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9kZWZhdWx0L3Nhc3MvYXBwL2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9vYmNob2Qtc2Ftc3VuZy5jei9zYXNzL190aGVtZS12YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvZGVmYXVsdC9zYXNzL2hlYWRlci1jYXJ0L19oZWFkZXItY2FydC1pdGVtLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9vYmNob2Qtc2Ftc3VuZy5jei9zYXNzL2hlYWRlci1jYXJ0L19hbGwuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOmxpc3QnO1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQgZnJvbSB0aGUgZ2l2ZW4gYnJlYWtwb2ludC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBUaGUgYnJlYWtwb2ludCBmb3Igd2hpY2ggdG8gZmluZCB0aGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQuXG4gKiBAcmV0dXJuIHtTdHJpbmd8bnVsbH0gLSBUaGUgbmV4dCBzbWFsbGVyIGJyZWFrcG9pbnQsIG9yIG51bGwgaWYgbm8gc21hbGxlciBicmVha3BvaW50IGlzIGF2YWlsYWJsZS5cbiAqL1xuQGZ1bmN0aW9uIGdldC1zbWFsbGVyLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAka2V5czogbWFwLmtleXMoJGdyaWQtYnJlYWtwb2ludHMpO1xuICAgICRpbmRleDogbGlzdC5pbmRleCgka2V5cywgJGJyZWFrcG9pbnQpO1xuXG4gICAgQGlmIG5vdCAkaW5kZXggb3IgJGluZGV4ID09IDEge1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgQHJldHVybiBsaXN0Lm50aCgka2V5cywgJGluZGV4IC0gMSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBuZXh0IGxhcmdlciBicmVha3BvaW50IGZyb20gdGhlICRncmlkLWJyZWFrcG9pbnRzIG1hcC5cbiAqXG4gKiBAZnVuY3Rpb24gZ2V0LWJpZ2dlci1icmVha3BvaW50XG4gKiBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBUaGUgY3VycmVudCBicmVha3BvaW50IHRvIGZpbmQgdGhlIG5leHQgbGFyZ2VyIG9uZSBmb3IuXG4gKiBAcmV0dXJuIHtTdHJpbmcgfCBudWxsfSAtIFRoZSBuZXh0IGxhcmdlciBicmVha3BvaW50IG9yIG51bGwgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyB0aGUgbGFyZ2VzdCBvciBub3QgZm91bmQuXG4gKi9cbkBmdW5jdGlvbiBnZXQtbGFyZ2VyLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAka2V5czogbWFwLmtleXMoJGdyaWQtYnJlYWtwb2ludHMpO1xuICAgICRpbmRleDogbGlzdC5pbmRleCgka2V5cywgJGJyZWFrcG9pbnQpO1xuXG4gICAgQGlmIG5vdCAkaW5kZXggb3IgJGluZGV4ID09IGxpc3QubGVuZ3RoKCRicmVha3BvaW50KSB7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBAcmV0dXJuIGxpc3QubnRoKCRrZXlzLCAkaW5kZXggKyAxKTtcbn1cbiIsIkB1c2UgJ3Nhc3M6Y29sb3InO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczpsaXN0JztcblxuLy8gKiBWaXN1YWxzIGZvciBzbWFsbCBibG9ja3Mgd2l0aCBhIGhvdmVyIC8gZm9jdXMtd2l0aGluIGVmZmVjdCBpbmNsdWRlZFxuLy8gKiBUbyBtb2RpZnkgZGVmYXVsdCB2YWx1ZXMsIHlvdSBjb3VsZCB1c2UgQGluY2x1ZGUgc21hbGwtYmxvY2stY29tcG9uZW50KG1hcC5zZXQoJGNvbmZpZywgJ3JhZGl1cycsIDIwcHgpKVxuQG1peGluIHNtYWxsLWJsb2NrLWNvbXBvbmVudChcbiAgICAkcmFkaXVzOiAxMHB4LFxuICAgICRiYWNrZ3JvdW5kLXN0YXJ0OiBjb2xvci5hZGp1c3QobWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWxpZ2h0KSwgJGFscGhhOiAtMSksXG4gICAgJGJhY2tncm91bmQtZW5kOiBjb2xvci5hZGp1c3QobWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWxpZ2h0KSwgJGFscGhhOiAwKSxcbiAgICAkYm94LXNoYWRvdy1zdGFydDogMCA0cHggMjBweCAwICMwMDAwMDAxNCxcbiAgICAkYm94LXNoYWRvdy1lbmQ6IDAgNHB4IDRweCAwICMwMDAwMDAxNCxcbiAgICAkdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgbGluZWFyIDAuMTVzLCBib3gtc2hhZG93IGxpbmVhciAwLjE1cydcbikge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtc3RhcnQ7XG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctc3RhcnQ7XG4gICAgdHJhbnNpdGlvbjogI3skdHJhbnNpdGlvbn07XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtZW5kO1xuICAgICAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1lbmQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lkZS1jYXJkKCRicmVha3BvaW50OiAneGwnKSB7XG4gICAgJHNtYWxsZXItYnJlYWtwb2ludDogZ2V0LWxhcmdlci1icmVha3BvaW50KCRicmVha3BvaW50KTtcblxuICAgIC5wcm9kdWN0LWNhcmQge1xuICAgICAgICAtLXRodW1ibmFpbC13aWR0aDogMjAwcHg7XG4gICAgICAgIC0tZmxhZy1mb250LXNpemU6IDEuMnJlbTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGxpZ2h0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggMCByZ2IoMCwgMCwgMCwgMC4wNyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgcGFkZGluZzogM3JlbTtcbiAgICAgICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc21hbGxlci1icmVha3BvaW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJHNtYWxsZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIC0tdGh1bWJuYWlsLXdpZHRoOiAyODBweDtcbiAgICAgICAgICAgICAgICAtLWZsYWctZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICAmX19pbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLXRodW1ibmFpbC13aWR0aCkgMWZyIGF1dG87XG4gICAgICAgICAgICAgICAgZ3JpZC1hdXRvLXJvd3M6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjRyZW07XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDRyZW0gM3JlbSAwO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcHJpbWFyeSxcbiAgICAgICAgICAgICZfX3NlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3NlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXRodW1ibmFpbC13aWR0aCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMjQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGluc2V0OiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX192YXJpYW50cyB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2hlYWRpbmcge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3BlcmV4IHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wYXJhbWV0ZXJzIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19hdmFpbGFiaWxpdHkge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAuY2FyZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMCAxLjZyZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fZnVsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGRhcmspO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9fZGlzY291bnQsXG4gICAgICAgICAgICAgICAgICAgICZfX3NhdmluZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fZmxhZ3Mge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMTNweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHBsYWNlLXNlbGY6IHN0YXJ0IGVuZDtcbiAgICAgICAgICAgICAgICBnYXA6IDAuM3JlbTtcblxuICAgICAgICAgICAgICAgIFtjbGFzcyo9J19faXRlbSddIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC4yMmVtIDAuNjNlbTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWZsYWctZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MqPSdfX3RleHQnXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA0MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2FkZCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgICYtbGluayB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjA1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAqIEFkZCBpbnZlcnRlZCBib3JkZXIgcmFkaXVzIGNvcm5lcnNcbi8vICogbWFzayB2YWx1ZXMgYXJlIGluIHRoZSBvcmRlciB0bCAvIHRyIC8gYnIgLyBibFxuLy8gKiBOb3RlIHRoYXQgYWxsIHVuaXRzIHNob3VsZCBiZSBpbiBweFxuLy8gKiBAcGFyYW0ge2xpc3R9IC0gc3BlY2lmaWMgYm9yZGVyIGNvcm5lcnMgJGNvcm5lcnMgKGFsbHx0bHx0cnxibHxicilcbkBtaXhpbiBpbnZlcnRlZC1ib3JkZXItcmFkaXVzKCRjb3JuZXJzOiAnYWxsJykge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxuICAgICR2YWxpZC1ib3JkZXItcmFkaXVzLXBhcmFtczogWydhbGwnLCAndGwnLCAndHInLCAnYmwnLCAnYnInLCAndCcsICdyJywgJ2InLCAnbCddO1xuICAgICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuICAgICRpbnZlcnRlZC1ib3JkZXItdGw6IDBweDtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAwcHg7XG4gICAgJGludmVydGVkLWJvcmRlci1icjogMHB4O1xuICAgICRpbnZlcnRlZC1ib3JkZXItYmw6IDBweDtcblxuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50OiAjMDAwMCA5OCUsICMwMDA7XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzOiAjeyRpbnZlcnRlZC1ib3JkZXItcmFkaXVzfTtcblxuICAgIEBpZiBub3QgbGlzdC5pbmRleCgkdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXMsICRjb3JuZXJzKSB7XG4gICAgICAgIEBlcnJvciBcIiN7JGNvcm5lcnN9IGlzIG5vdCBhIHZhbGlkIHNpZGUuIEV4cGVjdGVkIG9uZSBvZiAjeyR2YWxpZC1ib3JkZXItcmFkaXVzLXBhcmFtc30uXCI7XG4gICAgfVxuXG4gICAgQGlmICRjb3JuZXJzID09ICdhbGwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndGwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndHInIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYnInIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYmwnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAndCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAncicge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnYicge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfSBAZWxzZSBpZiAkY29ybmVycyA9PSAnbCcge1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1ibDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsOiAjeyRpbnZlcnRlZC1ib3JkZXItdGx9O1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cjogI3skaW52ZXJ0ZWQtYm9yZGVyLXRyfTtcbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnI6ICN7JGludmVydGVkLWJvcmRlci1icn07XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsOiAjeyRpbnZlcnRlZC1ib3JkZXItYmx9O1xuXG4gICAgbWFzazpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpIGF0IDAgMCwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMCAwLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgYXQgMTAwJSAwLCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQpKSAxMDAlIDAsXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSBhdCAwIDEwMCUsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDAgMTAwJSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpIGF0IDEwMCUgMTAwJSwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMTAwJSAxMDAlO1xuICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFzay1zaXplOiA1MSUgNTElO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxuICAgIC8vIERpc2FibGUgZm9yIG9sZGVyIFNhZmFyaSBicm93c2VycyBhcyB0aGUgbGF5b3V0IGJyZWFrcyB0aGVyZSB3aXRoIG1hc2tcbiAgICBAc3VwcG9ydHMgKGJhY2tncm91bmQ6IC13ZWJraXQtbmFtZWQtaW1hZ2UoaSkpIHtcbiAgICAgICAgbWFzazogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBXZSBjYW5ub3QgY2hlY2sgZm9yIEBzdXBwb3J0cyAoY2xpcC1wYXRoOiBzaGFwZSgpKSBiZWNhdXNlLCB3aGlsZSBGaXJlZm94IHN1cHBvcnRzIHRoZSBydWxlLCBpdCBkb2VzIG5vdCB3b3JrIC0geWV0IChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEwMzI4KVxuICAgIC8vIEJ1dCwgYXMgc2hhcGUoKSBjYW4gYmUgdXNlZCBpbiBhbmltYXRpb24gcGF0aHMsIGFuZCBDaHJvbWUgYW5kIGN1cnJlbnQgU2FmYXJpIHN1cHBvcnQgdGhpcyBpbXBsZW1lbnRhdGlvbi5cbiAgICAvLyBOT1RFOiBXZSBzaG91bGQgc3RpbGwgY2hlY2sgdG8gc2VlIHdoZW4gY2xpcC1wYXRoOiBzaGFwZSgpIGlzIGZ1bGx5IGVuYWJsZWQgaW4gRmlyZWZveCwgYnV0IGluIHRoZSBtZWFudGltZSwgbWFza2luZyB3b3JrcyBuaWNlbHkgdGhlcmVcbiAgICBAc3VwcG9ydHMgKG9mZnNldC1wYXRoOiBzaGFwZShmcm9tIHRvcCBsZWZ0LCBjdXJ2ZSB0byA1MCUgNTAlIHdpdGggMjUlIDEwMCUpKSB7XG4gICAgICAgIG1hc2s6IG5vbmU7XG4gICAgICAgIGNsaXAtcGF0aDogc2hhcGUoXG4gICAgICAgICAgICBmcm9tIDAgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCksXG4gICAgICAgICAgICBhcmMgYnkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSAqIC0xKSBvZiB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSxcbiAgICAgICAgICAgIGxpbmUgdG8gY2FsYygxMDAlIC0gdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikpIDAsXG4gICAgICAgICAgICBhcmMgYnkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10cikgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10ciksXG4gICAgICAgICAgICBsaW5lIHRvIDEwMCUgY2FsYygxMDAlIC0gdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikpLFxuICAgICAgICAgICAgYXJjIGJ5IGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikgKiAtMSkgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1icikgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1iciksXG4gICAgICAgICAgICBsaW5lIHRvIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpIDEwMCUsXG4gICAgICAgICAgICBhcmMgYnkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAqIC0xKSBjYWxjKHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpICogLTEpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYmwpLFxuICAgICAgICAgICAgbGluZSB0byAwIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpXG4gICAgICAgICk7XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxufVxuXG4vLyBMYWJlbCBpcyBzaGlmdGVkIHdoZW4gLVxuLy8gaW5wdXQgaXMgZm9jdXNlZFxuLy8gaGFzIHZhbHVlIHByb3AgYnV0IG5vdCBwbGFjZWhvbGRlciBzaG93biAoaGFwcGVuZHMgd2hlbiBwcmVmaWxsZWQgaW5wdXQgaXMgbWFudWFsbHkgY2xlYXJlZClcbi8vIGhhcyBzb21lIHRleHQgcGxhY2Vob2xkZXJcbi8vIGlzIGF1dG9maWxsZWRcbkBtaXhpbiBmb3JtLWlucHV0LWxhYmVsLXNlbGVjdG9ycyB7XG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTpub3QoOndoZXJlKDpwbGFjZWhvbGRlci1zaG93bikpOmlzKDp3aGVyZSg6bm90KDpwbGFjZWhvbGRlci1zaG93bikpLCA6d2hlcmUoOm5vdChbcGxhY2Vob2xkZXI9JyddLCBbcGxhY2Vob2xkZXI9JyAnXSkpLCA6bm90KFt2YWx1ZT0nJ10pLCA6LXdlYmtpdC1hdXRvZmlsbCwgOmF1dG9maWxsLCA6Zm9jdXMpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSxcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOmlzKDp3aGVyZSg6cGxhY2Vob2xkZXItc2hvd246bm90KFtwbGFjZWhvbGRlcj0nJ10sIFtwbGFjZWhvbGRlcj0nICddKSkpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSxcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOmlzKDpmb2N1cykpIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlc2V0IGlTcGFjZSBjdXN0b20gZm9ybSBpbnB1dCBzdHlsZXMgdG8gYmUgYWJsZSB0byBkZXNpZ24gc3BlY2lhbCBpbnB1dHMgbW9yZSBlYXNpbHlcbiAqL1xuQG1peGluIHJlc2V0LWZvcm0taW5wdXQge1xuICAgICY6aGFzKDp3aGVyZShpbnB1dDpub3QoW3R5cGU9J2NoZWNrYm94J10sIFt0eXBlPSdyYWRpbyddKSwgdGV4dGFyZWEsIHNlbGVjdCkpIHtcbiAgICAgICAgei1pbmRleDogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogaW5pdGlhbDtcblxuICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiBpbml0aWFsO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkID4gKikge1xuICAgICAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGRfX2lucHV0KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyguZXJyb3JzKSB7XG4gICAgICAgICAgICAtLWlucHV0LWJnOiBpbml0aWFsO1xuXG4gICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhhcyhbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICAuZm9ybS1maWVsZC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB6LWluZGV4OiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5pdGlhbDtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IGluaXRpYWw7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoLmZvcm0tZmllbGQtLXNtKSB7XG4gICAgICAgICAgICAuZm9ybS1pbnB1dF9fbGFiZWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjpub3QoOndoZXJlKDpmb2N1cy13aXRoaW4sIFtkaXNhYmxlZF0pKSB7XG4gICAgICAgICAgICAgICAgJjp3aGVyZSg6bm90KDpoYXMoLmVycm9ycykpKSB7XG4gICAgICAgICAgICAgICAgICAgIDp3aGVyZSguZm9ybS1maWVsZC1jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIDp3aGVyZSguZm9ybS1pbnB1dF9fbGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpoYXMoLmVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtbGFiZWwtc2VsZWN0b3JzIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5pdGlhbDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBTdHlsZXMgdG8gaGlkZSB0aGUgc2Nyb2xsYmFyIGJ1dCBzdGlsbCBhbGxvdyBzY3JvbGxpbmdcbiAqL1xuQG1peGluIHNjcm9sbC13aXRob3V0LXNjcm9sbGJhciB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7IC8qIEZpcmVmb3ggKi9cbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFIGFuZCBFZGdlICovXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG5cbiAgICAvKiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmEgKi9cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBBbHRlcm5hdGl2ZSBkaXNjLWxpa2Ugc3R5bGluZyBmb3IgcmFkaW8gYW5kIGNoZWNrYm94IGlucHV0c1xuQG1peGluIGlucHV0LWRpc2Mge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwIDEwcHggMCBhdXRvO1xuICAgIG1hcmdpbi1ibG9jazogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBmbGV4OiAwIDAgMTVweDsgLy8gaW4gY2FzZSBpdCdzIHBhcnQgb2YgYSBmbGV4IGxheW91dFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xufVxuXG4vLyBjYXJkIGJveGVzIGFyZSB0eXBpY2FsbHkgdXNlZCBvbiBwcm9kdWN0IGRldGFpbCBzZXJ2aWNlcywgY2hlY2tvdXQgdHJhbnNwb3J0L3BheW1lbnQgb3B0aW9ucyxcbi8vIEFORCBwcmUtY2hlY2tvdXQgcGFnZVxuQG1peGluIGNhcmQtYm94IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGxpZ2h0KTtcbiAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS05MDAnKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbWFwLmdldCgkaW5wdXQsIGJvcmRlci1jb2xvcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNHB4IDMwcHggMTRweCAyMHB4O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IC0xcHg7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgW3R5cGU9J2NoZWNrYm94J10sXG4gICAgW3R5cGU9J3JhZGlvJ10ge1xuICAgICAgICBAaW5jbHVkZSBpbnB1dC1kaXNjO1xuICAgIH1cblxuICAgICY6aGFzKDpjaGVja2VkKSxcbiAgICAmW2NsYXNzKj0nc2VsZWN0ZWQnXSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBbdHlwZT0nY2hlY2tib3gnXTpub3QoLmZpeC1zcGVjaWZpY2l0eSksXG4gICAgICAgIFt0eXBlPSdyYWRpbyddOm5vdCguZml4LXNwZWNpZmljaXR5KSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1kYXJrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXI6bm90KDpoYXMoW2Rpc2FibGVkXSkpLFxuICAgICY6Zm9jdXMtd2l0aGluOm5vdCg6aGFzKFtkaXNhYmxlZF0pKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTQwMCk7XG5cbiAgICAgICAgW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSxcbiAgICAgICAgW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYigwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoW2Rpc2FibGVkXSk6bm90KC5maXgtc3BlY2lmaWNpdHkpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuXG4uaGVhZGVyLWNhcnQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLS1sIHtcbiAgICAgICAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIEBpbmNsdWRlIGN1c3RvbS1zY3JvbGxiYXItY29udGFpbmVyO1xuXG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoOTB2aCAtICRoZWFkZXItbmF2LWhlaWdodCAtIDhyZW0pO1xuICAgIH1cblxuICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAubWVzc2FnZSB7XG4gICAgICAgICAgICAmLm9rIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzci1vbmx5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX190YWJsZS1jZWxsIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgfVxuXG4gICAgJl9fdGFibGUtY2VsbCArICZfX3RhYmxlLWNlbGwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktMjAwJyk7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgbGVmdDogLTEwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMzAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnRuLmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0yMDAnKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkaGVhZGVyLW5hdi1icmVha3BvaW50KSB7XG4gICAgICAgICZfX21haW4ge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYyg5MHZoIC0gJGhlYWRlci1uYXYtZGVza3RvcC1oZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIG5leHQgc21hbGxlciBicmVha3BvaW50IGZyb20gdGhlIGdpdmVuIGJyZWFrcG9pbnQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gVGhlIGJyZWFrcG9pbnQgZm9yIHdoaWNoIHRvIGZpbmQgdGhlIG5leHQgc21hbGxlciBicmVha3BvaW50LlxuICogQHJldHVybiB7U3RyaW5nfG51bGx9IC0gVGhlIG5leHQgc21hbGxlciBicmVha3BvaW50LCBvciBudWxsIGlmIG5vIHNtYWxsZXIgYnJlYWtwb2ludCBpcyBhdmFpbGFibGUuXG4gKi9cbi8qKlxuICogUmV0cmlldmVzIHRoZSBuZXh0IGxhcmdlciBicmVha3BvaW50IGZyb20gdGhlICRncmlkLWJyZWFrcG9pbnRzIG1hcC5cbiAqXG4gKiBAZnVuY3Rpb24gZ2V0LWJpZ2dlci1icmVha3BvaW50XG4gKiBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBUaGUgY3VycmVudCBicmVha3BvaW50IHRvIGZpbmQgdGhlIG5leHQgbGFyZ2VyIG9uZSBmb3IuXG4gKiBAcmV0dXJuIHtTdHJpbmcgfCBudWxsfSAtIFRoZSBuZXh0IGxhcmdlciBicmVha3BvaW50IG9yIG51bGwgaWYgdGhlIGN1cnJlbnQgYnJlYWtwb2ludCBpcyB0aGUgbGFyZ2VzdCBvciBub3QgZm91bmQuXG4gKi9cbi8qKlxuICogUmVzZXQgaVNwYWNlIGN1c3RvbSBmb3JtIGlucHV0IHN0eWxlcyB0byBiZSBhYmxlIHRvIGRlc2lnbiBzcGVjaWFsIGlucHV0cyBtb3JlIGVhc2lseVxuICovXG4vKipcbiAqIFN0eWxlcyB0byBoaWRlIHRoZSBzY3JvbGxiYXIgYnV0IHN0aWxsIGFsbG93IHNjcm9sbGluZ1xuICovXG4uaGVhZGVyLWNhcnQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmhlYWRlci1jYXJ0LS1sIHtcbiAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uaGVhZGVyLWNhcnRfX21haW4ge1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LWhlaWdodDogY2FsYyg5MHZoIC0gNS41cmVtIC0gOHJlbSk7XG59XG4uaGVhZGVyLWNhcnRfX21haW46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDRweDtcbn1cbi5oZWFkZXItY2FydF9fbWFpbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5oZWFkZXItY2FydF9fbWFpbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4uaGVhZGVyLWNhcnRfX21haW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbn1cbi5oZWFkZXItY2FydF9fbWVzc2FnZSAubWVzc2FnZS5vayB7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDFweDtcbn1cbi5oZWFkZXItY2FydF9fdGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbi5oZWFkZXItY2FydF9fdGFibGUtY2VsbCB7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuLmhlYWRlci1jYXJ0X190YWJsZS1jZWxsICsgLmhlYWRlci1jYXJ0X190YWJsZS1jZWxsIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuLmhlYWRlci1jYXJ0X19mb290ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5oZWFkZXItY2FydF9fZm9vdGVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDFweDtcbiAgbGVmdDogLTEwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFyZW07XG4gIHdpZHRoOiAxMzAlO1xufVxuLmhlYWRlci1jYXJ0X19idG4uZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhlYWRlci1jYXJ0X19tYWluIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDkwdmggLSAxNC41cmVtKTtcbiAgfVxufVxuXG4uaGVhZGVyLWNhcnQtaXRlbSAuaGVhZGVyLWNhcnQtaXRlbS1kZWxldGUtd3JhcHBlciB7XG4gIGhlaWdodDogMjAwZW07XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IGNhbGModmFyKC0tc3RhcnQtaGVpZ2h0LCAxMDAlKSAtIDEwcHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjE1cyBlYXNlLWluLW91dDtcbn1cbi5oZWFkZXItY2FydC1pdGVtX19kZWxldGUgLmhlYWRlci1jYXJ0LWl0ZW0tZGVsZXRlLXdyYXBwZXIge1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xufVxuLmhlYWRlci1jYXJ0LWl0ZW1fX2xpbmsge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuOHJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmhlYWRlci1jYXJ0LWl0ZW1fX2ltZyB7XG4gIHdpZHRoOiA1cmVtO1xuICBoZWlnaHQ6IDVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaGVhZGVyLWNhcnQtaXRlbV9faW1nIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uaGVhZGVyLWNhcnQtaXRlbV9fdGV4dCB7XG4gIGZsZXg6IDE7XG59XG4uaGVhZGVyLWNhcnQtaXRlbV9fbmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmhlYWRlci1jYXJ0LWl0ZW1fX3ZhcmlhbnQge1xuICBjb2xvcjogIzc0NzQ3NDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuLmhlYWRlci1jYXJ0LWl0ZW1fX3F1YW50aXR5IHtcbiAgbWF4LXdpZHRoOiA1cmVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgd2lkdGg6IDEyJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5oZWFkZXItY2FydC1pdGVtX19wcmljZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICB3aWR0aDogMjAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmhlYWRlci1jYXJ0LS1sIC5oZWFkZXItY2FydC1pdGVtX19wcmljZSB7XG4gIHdpZHRoOiAzMCU7XG59XG4uaGVhZGVyLWNhcnQtaXRlbV9fdG90YWwtcHJpY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5oZWFkZXItY2FydC1pdGVtX19xdWFudGl0eSA+ICo6Zmlyc3QtY2hpbGQsIC5oZWFkZXItY2FydC1pdGVtX19wcmljZSA+ICo6Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IDFweDtcbn1cbi5oZWFkZXItY2FydC1pdGVtX192YXQtcHJpY2Uge1xuICBjb2xvcjogIzc0NzQ3NDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaGVhZGVyLWNhcnQtaXRlbV9fYWN0aW9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICB3aWR0aDogM3JlbTtcbn1cbi5oZWFkZXItY2FydC1pdGVtX19yZW1vdmUge1xuICBjb2xvcjogIzc0NzQ3NDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBzdHJva2Utd2lkdGg6IDI7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuaGVhZGVyLWNhcnQtaXRlbV9fbGluazpob3ZlciAuaGVhZGVyLWNhcnQtaXRlbV9fbmFtZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuaGVhZGVyLWNhcnQge1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgfVxufVxuLmhlYWRlci1jYXJ0LmlzLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIGF1dG8gYXV0bztcbiAgZ2FwOiAycmVtO1xufVxuLmhlYWRlci1jYXJ0X19tYWluIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhlYWRlci1jYXJ0X19tYWluIHtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDJyZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcbiAgLmhlYWRlci1jYXJ0X19tYWluIHtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDZweDtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogLTZweDtcbiAgfVxufVxuLmhlYWRlci1jYXJ0LWl0ZW1fX3F1YW50aXR5LCAuaGVhZGVyLWNhcnQtaXRlbV9fcHJpY2UsIC5oZWFkZXItY2FydC1pdGVtX19hY3Rpb25zIHtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuLmhlYWRlci1jYXJ0LWl0ZW1fX3F1YW50aXR5ID4gKjpmaXJzdC1jaGlsZCwgLmhlYWRlci1jYXJ0LWl0ZW1fX3ByaWNlID4gKjpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctYmxvY2stc3RhcnQ6IDA7XG59XG4uaGVhZGVyLWNhcnQtaXRlbV9fbGluayB7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cbi5oZWFkZXItY2FydC1pdGVtX19wcmljZSB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmhlYWRlci1jYXJ0LWl0ZW1fX3ZhdC1wcmljZSB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuLmhlYWRlci1jYXJ0X190YWJsZS1jZWxsIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmhlYWRlci1jYXJ0X19wcmljZSwgLmhlYWRlci1jYXJ0X19mb290ZXIge1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAycmVtO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG4uaGVhZGVyLWNhcnRfX3ByaWNlIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICBwYWRkaW5nOiAycmVtO1xufVxuLmhlYWRlci1jYXJ0X19wcmljZSA+ICoge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xufVxuLmhlYWRlci1jYXJ0X19wcmljZSA+ICogZW0ge1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBqdXN0aWZ5LXNlbGY6IGVuZDtcbn1cbi5oZWFkZXItY2FydF9fcHJpY2UtLWluY2wtdmF0IHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBcIndnaHRcIiA3MDA7XG59XG4uaGVhZGVyLWNhcnRfX3ByaWNlLS1leGNsLXZhdCB7XG4gIGJvcmRlci1ibG9jay1zdGFydDogMXB4IHNvbGlkICNkZWRlZGU7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogMC41cmVtO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogXCJ3Z2h0XCIgNDAwO1xuICBvcGFjaXR5OiAwLjY7XG59XG4uaGVhZGVyLWNhcnRfX2Zvb3RlciB7XG4gIHBhZGRpbmc6IDA7XG59XG4uaGVhZGVyLWNhcnRfX2Zvb3Rlcjo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogMDtcbn1cbi5oZWFkZXItY2FydF9fYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG59IiwiQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbkBtaXhpbiBzcXVhcmUoJHNpemUpIHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbn1cblxuQG1peGluIGN1c3RvbS1zY3JvbGxiYXItY29udGFpbmVyKCRpcy12ZXJ0aWNhbDogZmFsc2UpIHtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgQGlmICRpcy12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzY3JvbGxiYXItY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzY3JvbGxiYXItY29sb3I7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9kYWwtdmFyaWFibGVzIHtcbiAgICAtLWJzLW1vZGFsLXdpZHRoOiBtYXgtY29udGVudDtcbiAgICAtLWJzLW1vZGFsLWJvcmRlci1yYWRpdXM6IDA7XG4gICAgLS1icy1tb2RhbC1tYXgtaGVpZ2h0OiA5OGR2aDtcbiAgICAtLWJzLW1vZGFsLXdpZHRoLW5hcnJvdzogNTAwcHg7XG4gICAgLS1icy1tb2RhbC13aWR0aC1kZWZhdWx0OiA4NTBweDtcbiAgICAtLWJzLW1vZGFsLXdpZHRoLXdpZGU6IDExMDBweDtcbiAgICAtLW1vZGFsLXBhZGRpbmctYmxvY2s6IGNsYW1wKDFyZW0sIDR2dywgMi41cmVtKTtcbiAgICAtLW1vZGFsLXBhZGRpbmctaW5saW5lOiBjbGFtcCgxcmVtLCA1dncsIDNyZW0pO1xuICAgIC0tYnMtbW9kYWwtcGFkZGluZzogdmFyKC0tbW9kYWwtcGFkZGluZy1ibG9jaykgdmFyKC0tbW9kYWwtcGFkZGluZy1pbmxpbmUpO1xuICAgIC0tYnMtbW9kYWwtbWFyZ2luOiAwO1xuICAgIC0tYnMtbW9kYWwtaGVhZGVyLWZvbnQtc2l6ZTogI3skaDMtZm9udC1zaXplfTtcbiAgICAtLW1vZGFsLWluLW1vZGFsLWJhY2tkcm9wLWNvbG9yOiAje3JnYmEoJG1vZGFsLWJhY2tkcm9wLWJnLCAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSl9O1xufVxuXG5AbWl4aW4gYm94ZXMoJHF1YW50aXR5OiAzLCAkZ2FwOiAxcmVtLCAkY2VudGVyLWdhcDogY2xhbXAoMXJlbSwgNSUsIDRyZW0pLCAkY2VudGVyLWJsb2NrOiBmYWxzZSkge1xuICAgICRnYXAtd2l0aC11bml0OiBpZihtYXRoLmlzLXVuaXRsZXNzKCRnYXApLCAkZ2FwICogMXJlbSwgJGdhcCk7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIEBpZiAkY2VudGVyLWJsb2NrIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogJGNlbnRlci1nYXA7XG5cbiAgICAgICAgPiAqOndoZXJlKGltZykge1xuICAgICAgICAgICAgaGVpZ2h0OiByZXZlcnQtbGF5ZXI7XG4gICAgICAgICAgICB3aWR0aDogcmV2ZXJ0LWxheWVyO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGdhcDogJGdhcC13aXRoLXVuaXQ7XG4gICAgfVxuXG4gICAgPiAqIHtcbiAgICAgICAgQGlmICRxdWFudGl0eSB7XG4gICAgICAgICAgICAvLyBGWUk6IGNhbGN1bGF0ZSB0aGUgJSB3aWR0aCAtIChudW1iZXIgb2YgZ2FwcyAvIHF1YW50aXR5KVxuICAgICAgICAgICAgLS1mbGV4LWJhc2lzOiBjYWxjKCN7bWF0aC5kaXYoMTAwLCAkcXVhbnRpdHkpICogMSV9IC0gI3skZ2FwLXdpdGgtdW5pdCAqIChtYXRoLmRpdigoJHF1YW50aXR5IC0gMSksICRxdWFudGl0eSkpfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vICogc2NyZWVuLXJlYWRlciBvbmx5XG4vLyAqIEBwYXJhbSBjb25maWcgLSBudWxsIHwgc3RyaW5nICgndW5kbycpIC0gcmVzZXRzIGEgcHJldmlvdXMgc3Itb25seSBydWxlc2V0XG5AbWl4aW4gc3Itb25seSgkY29uZmlnOiBudWxsKSB7XG4gICAgQGlmICRjb25maWcgPT0gJ3VuZG8nIHtcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LW5vLWRlcHJlY2F0ZWRcbiAgICAgICAgY2xpcDogdW5zZXQ7XG4gICAgICAgIGNsaXAtcGF0aDogdW5zZXQ7XG4gICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIG92ZXJmbG93OiB1bnNldDtcbiAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgICB3aGl0ZS1zcGFjZTogdW5zZXQ7XG4gICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LW5vLWRlcHJlY2F0ZWRcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgIH1cbn1cblxuLy8gTW9kaWZpZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgZGVza3RvcCBzdWJtZW51IHdoZW4gdGhlcmUgYXJlIGZld2VyIHRoYW4gLyRtZW51LXN1Ym1lbnUtc2luZ2xlLWNvbHVtbi1taW4vIGl0ZW1zLFxuLy8gQU5ELCB3aGVuIHRoZXJlIGFyZSBubyBzdWItc3ViY2F0ZWdvcnkgaXRlbXNcbkBtaXhpbiBkZXNrdG9wLW5hdmlnYXRpb24tbmFycm93IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRoZWFkZXItbmF2LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gTk9URTogc2xpZ2h0bHkgb2xkZXIgRmlyZWZveCBzdXBwb3J0cyA6aGFzKGVsZW1lbnQpIGJ1dCBub3QgOmhhcyhlbGVtZW50ICsgZWxlbWVudClcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3Mvb3BlcmF0b3Itbm8tdW5zcGFjZWRcbiAgICAgICAgQHN1cHBvcnRzIHNlbGVjdG9yKDpoYXMoKyAqKSkge1xuICAgICAgICAgICAgLmhlYWRlciAubmF2IHtcbiAgICAgICAgICAgICAgICAubWVudSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgJi1tYWluOm5vdCg6aGFzKC5zdWJtZW51LS1tYWluIHVsIHVsKSk6bm90KDpoYXMoLnN1Ym1lbnUtLW1haW4gPiAubWVudS0tbmVzdGVkID4gLm1lbnVfX2l0ZW0tLW5lc3RlZDpudGgtY2hpbGQoI3skbWVudS1zdWJtZW51LXNpbmdsZS1jb2x1bW4tbWlufSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBzdGlja3ktc2lkZWJhcigkbWVkaWEtcXVlcnktbWluLXdpZHRoOiAnbGcnKSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbWVkaWEtcXVlcnktbWluLXdpZHRoKSB7XG4gICAgICAgIC0tdG9wLXBvc2l0aW9uOiBjYWxjKCh2YXIoLS1oZWlnaHQtZGlmZiwgMHB4KSAqIC0xKSArIDFyZW0pO1xuXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogdmFyKC0tdG9wLXBvc2l0aW9uKTtcbiAgICB9XG59XG5cbi8vLyBBZGRzIGEgc2Nyb2xsLW1hcmdpbi1ibG9jay1zdGFydCBkZWNsYXJhdGlvbiB0byB0aGUgY3VycmVudCBzZWxlY3RvclxuLy8vIChzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0IGlzIHRoZSBkZWZhdWx0IHByb3BlcnR5KVxuLy8vICRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCB2YWx1ZXMgYXJlIHNldCBpbiB2YXJpYWJsZXMgZmlsZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZSAtICdtYXJnaW4nIG9yICdwYWRkaW5nJ1xuQG1peGluIHNldC1zY3JvbGwtYmxvY2stc3RhcnQoJHR5cGU6ICdtYXJnaW4nKSB7XG4gICAgQGlmIG1ldGEudmFyaWFibGUtZXhpc3RzKCdoZWFkZXItZml4ZWQtYWRkaXRpb25hbCcpIHtcbiAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBoZWFkZXItbW9iaWxlKSBvciBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgdG9wLWJhbm5lci1tb2JpbGUpIHtcbiAgICAgICAgICAgICRzY3JvbGwtc2l6ZTogJyc7XG5cbiAgICAgICAgICAgIEBpZiBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgaGVhZGVyLW1vYmlsZSkge1xuICAgICAgICAgICAgICAgICRzY3JvbGwtc2l6ZTogJHNjcm9sbC1zaXplICsgdmFyKC0taGVhZGVyLWhlaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgdG9wLWJhbm5lci1tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAkc2Nyb2xsLXNpemU6IGNhbGMoI3skc2Nyb2xsLXNpemV9ICsgdmFyKC0tcHJvbW8taGVpZ2h0LCAwcHgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7bWFwLmdldCgkaGVhZGVyLWZpeGVkLWFkZGl0aW9uYWwsIG1vYmlsZS1icmVha3BvaW50LXVwKSAtIDFweH0pIHtcbiAgICAgICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8taW52YWxpZC1wb3NpdGlvbi1kZWNsYXJhdGlvblxuICAgICAgICAgICAgICAgIHNjcm9sbC0jeyR0eXBlfS1ibG9jay1zdGFydDogI3skc2Nyb2xsLXNpemV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBoZWFkZXItZGVza3RvcCkgb3IgbWFwLmdldCgkaGVhZGVyLWZpeGVkLWFkZGl0aW9uYWwsIHRvcC1iYW5uZXItZGVza3RvcCkge1xuICAgICAgICAgICAgJHNjcm9sbC1zaXplOiAnJztcblxuICAgICAgICAgICAgQGlmIG1hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBoZWFkZXItZGVza3RvcCkge1xuICAgICAgICAgICAgICAgICRzY3JvbGwtc2l6ZTogJHNjcm9sbC1zaXplICsgdmFyKC0taGVhZGVyLWhlaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiBtYXAuZ2V0KCRoZWFkZXItZml4ZWQtYWRkaXRpb25hbCwgdG9wLWJhbm5lci1kZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgJHNjcm9sbC1zaXplOiBjYWxjKCN7JHNjcm9sbC1zaXplfSArIHZhcigtLXByb21vLWhlaWdodCwgMHB4KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAje21hcC5nZXQoJGhlYWRlci1maXhlZC1hZGRpdGlvbmFsLCBtb2JpbGUtYnJlYWtwb2ludC11cCl9KSB7XG4gICAgICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWludmFsaWQtcG9zaXRpb24tZGVjbGFyYXRpb25cbiAgICAgICAgICAgICAgICBzY3JvbGwtI3skdHlwZX0tYmxvY2stc3RhcnQ6ICN7JHNjcm9sbC1zaXplfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gY2FyZCBib3hlcyBhcmUgdHlwaWNhbGx5IHVzZWQgb24gcHJvZHVjdCBkZXRhaWwgc2VydmljZXMsIGNoZWNrb3V0IHRyYW5zcG9ydC9wYXltZW50IG9wdGlvbnMsXG4vLyBBTkQgcHJlLWNoZWNrb3V0IHBhZ2VcbkBtaXhpbiBjYXJkLWJveCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktOTAwJyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbWFwLmdldCgkaW5wdXQsIGJvcmRlci1jb2xvcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAtMXB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICY6aG92ZXI6bm90KDpoYXMoW2Rpc2FibGVkXSkpLFxuICAgICY6Zm9jdXMtd2l0aGluOm5vdCg6aGFzKFtkaXNhYmxlZF0pKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTQwMCk7XG5cbiAgICAgICAgW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSxcbiAgICAgICAgW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYigwLCAwLCAwLCAwLjIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoW2Rpc2FibGVkXSk6bm90KC5maXgtc3BlY2lmaWNpdHkpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTEwMCk7XG4gICAgICAgIGJvcmRlci1pbmxpbmUtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0xMDApO1xuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTYwMCk7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICA+ICoge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ibG9jay1lbmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0yMDApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZW1wdHktbGluZS1iZWZvcmVcbi8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZG91YmxlLXNsYXNoLWNvbW1lbnQtZW1wdHktbGluZS1iZWZvcmVcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uLy4uL2RlZmF1bHQvc2Fzcy9hc2dhcmQtdmFyaWFibGVzJyBhcyBhc2dhcmQtdmFyaWFibGVzO1xuXG4vLyBib290c3RyYXAgdmFyaWFibGVzXG4vLyBsYXlvdXRcbiRncmlkLWJyZWFrcG9pbnRzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kZ3JpZC1icmVha3BvaW50cyxcbiAgICAoXG4gICAgICAgIGRlc2t0b3A6IDE2NTBweCxcbiAgICAgICAgZnVsbGhkOiAxOTIwcHgsXG4gICAgICAgIDJrOiAyNTAwcHhcbiAgICApXG4pO1xuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRjb250YWluZXItbWF4LXdpZHRocyxcbiAgICAoXG4gICAgICAgIGxnOiAxMDI0cHgsXG4gICAgICAgIHhsOiAxMTQwcHgsXG4gICAgICAgIHh4bDogMTY4NXB4XG4gICAgKVxuKTtcblxuLy8gc3BhY2luZ1xuJGNvbnRhaW5lci1wYWRkaW5nLXg6IDNyZW07XG4kY2FudmFzLXBhZGRpbmcteTogNHJlbTtcbiRjYW52YXMtcGFkZGluZy15LW1kOiA2cmVtO1xuJGNhbnZhcy1wYWRkaW5nLXkteHhsOiA3cmVtO1xuXG4vLyBmb250XG4kZm9udC1zaXplLXJvb3Q6IDYyLjUlO1xuJGZvbnQtc2l6ZS1iYXNlOiAxLjRyZW07XG4kbGluZS1oZWlnaHQtYmFzZTogMS42O1xuJGZvbnQtZmFtaWx5LWJhc2U6ICdJbnRlcicsICdJbnRlci1mYWxsYmFjaycsICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4kZm9udC1zaXplLXNtOiAxLjJyZW07XG4kZm9udC1zaXplLWxnOiAkZm9udC1zaXplLWJhc2UgKiAxLjI1O1xuJGZvbnQtc2l6ZS1sYXJnZXI6ICRmb250LXNpemUtYmFzZSAqIDEuNTsgLy8gJGg0LWZvbnQtc2l6ZTtcbiRmb250LXNpemUtbGFyZ2VzdDogJGZvbnQtc2l6ZS1iYXNlICogMjsgLy8gJGgyLWZvbnQtc2l6ZTtcblxuJGxlZ2VuZC1mb250LXNpemU6IDJyZW07XG4kbGVnZW5kLW1hcmdpbi1ib3R0b206IDJyZW07XG4kbGVnZW5kLWZvbnQtd2VpZ2h0OiA3MDA7XG5cbi8vIHR5cG9cbiRoZWFkaW5ncy1tYXJnaW4tYm90dG9tOiAxZW07XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6IDcwMDtcblxuLy8gY29sb3JzXG4kcHJpbWFyeTogIzAwMDtcbiRwcmltYXJ5LWRhcms6ICMwMDA7XG4kcHJpbWFyeS1taWQ6ICNmNGY0ZjQ7XG4kcHJpbWFyeS1saWdodDogI2Y0ZjRmNDtcbiRzZWNvbmRhcnk6ICNmZjQzMzc7XG4kbGlnaHQ6ICNmZmY7XG4kZGFyazogIzAwMDtcblxuJGdyZWVuOiAjMDU4ODAyO1xuJGdyZWVuLWRhcms6ICMxODgwMzg7XG4kZ3JlZW4tc3A6IHJnYigzLCAxODEsIDApO1xuJGdyZWVuLWRhcmstc2VtaS10cmFuc3A6IHJnYigyNCwgMTI4LCA1NiwgMC4xKTtcblxuJHRoZW1lLWNvbG9yczogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJHRoZW1lLWNvbG9ycyxcbiAgICAoXG4gICAgICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgICAgICBwcmltYXJ5LWRhcms6ICRwcmltYXJ5LWRhcmssXG4gICAgICAgIHByaW1hcnktbWlkOiAkcHJpbWFyeS1taWQsXG4gICAgICAgIHByaW1hcnktbGlnaHQ6ICRwcmltYXJ5LWxpZ2h0LFxuICAgICAgICBzZWNvbmRhcnk6ICRzZWNvbmRhcnksXG4gICAgICAgIGxpZ2h0OiAkbGlnaHQsXG4gICAgICAgIGRhcms6ICRkYXJrLFxuICAgICAgICBkYXJrLXNlbWktdHJhbnNwOiByZ2IoMCwgMCwgMCwgMC4xKSxcbiAgICAgICAgYmFzZS1iZzogJGxpZ2h0LFxuICAgICAgICBiYXNlLXRleHQ6ICRkYXJrLFxuICAgICAgICBsaW5rOiAkcHJpbWFyeSxcbiAgICAgICAgc3VjY2VzczogIzhlZDYwOSxcbiAgICAgICAgc3VjY2Vzcy1iZzogI2U4ZjFkOSxcbiAgICAgICAgc3VjY2Vzcy10ZXh0OiAkZGFyayxcbiAgICAgICAgaW5mbzogIzljYjVlMSxcbiAgICAgICAgaW5mby1iZzogI2RkZWRmMyxcbiAgICAgICAgaW5mby10ZXh0OiAkZGFyayxcbiAgICAgICAgd2FybmluZzogIzIzOWJjOCxcbiAgICAgICAgd2FybmluZy1iZzogIzljYjVlMSxcbiAgICAgICAgd2FybmluZy10ZXh0OiAkZGFyayxcbiAgICAgICAgZGFuZ2VyOiAjZTI2OTY5LFxuICAgICAgICBkYW5nZXItYmc6ICNmNmRmZGYsXG4gICAgICAgIGRhbmdlci10ZXh0OiAkZGFyayxcbiAgICAgICAgc3Rhci1yYXRpbmctYmc6ICNmYjAsXG4gICAgICAgIGluLXN0b2NrOiAkZ3JlZW4sXG4gICAgICAgIG91dC1vZi1zdG9jazogI2UyNjk2OSxcbiAgICAgICAgcHJlb3JkZXI6ICNlYWIwMDAsXG4gICAgICAgIC8vIDEwJSBvZiBpbi1zdG9jayBjb2xvdXJcbiAgICAgICAgaW4tc3RvY2stYmc6IHJnYig1LCAxMzYsIDIsIDAuMSksXG4gICAgICAgIGdyYXktMTAwOiAjZjNmM2YzLFxuICAgICAgICBncmF5LTE1MDogI2U0ZTRlNCxcbiAgICAgICAgZ3JheS0yMDA6ICNkZWRlZGUsXG4gICAgICAgIGdyYXktMzAwOiAjZDBkMGQwLFxuICAgICAgICBncmF5LTQwMDogI2IxYjFiMSxcbiAgICAgICAgZ3JheS02MDA6ICM3NDc0NzQsXG4gICAgICAgIGdyYXktNzAwOiAjNGQ0ZDRkLFxuICAgICAgICBncmF5LTgwMDogIzM4MzgzOCxcbiAgICAgICAgZ3JheS05MDA6ICMyNjI2MjYsXG4gICAgICAgIGdyYXktc2VtaS10cmFuc3A6IHJnYigyMCwgOTIsIDEyOCwgMC4xKSxcbiAgICAgICAgc2F2aW5nLWNvbG9yOiByZ2IoMjQsIDEyOCwgNTYsIDEpLFxuICAgICAgICBzYXZpbmctY29sb3ItYmc6ICRncmVlbi1kYXJrLXNlbWktdHJhbnNwLFxuICAgICAgICB2b3VjaGVyLWJnOiAjZDhlZGY3LFxuICAgICAgICBzYXZpbmdzLXByaW1hcnk6ICNlMTE5MzEsXG4gICAgICAgIHNhdmluZ3Mtc2Vjb25kYXJ5OiAjZmVlOTU2LFxuICAgICAgICB1c2VkLW9mZmVycy1wcmltYXJ5OiAjZWFiMDAwLFxuICAgICAgICB1c2VkLW9mZmVycy1zZWNvbmRhcnk6ICNmZWZiZjJcbiAgICApXG4pO1xuLy8gYm9vdHN0cmFwIHZhcmlhYmxlcyBlbmRcblxuJGxhYmVsLWdpZnQtY29sb3I6ICMwMGFlYTM7XG4kbGFiZWwtdXNlZC1wcm9kdWN0LWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHVzZWQtb2ZmZXJzLXByaW1hcnkpO1xuJGxhYmVsLWdpZnQtYmctY29sb3I6ICNlNmZiZjM7XG5cbi8vIHNob3BpbyB2YXJpYWJsZXNcbiRmb250LXBhdGg6ICcvYXNzZXRzL2lzcGFjZS5jei9mb250JztcblxuJGgxLWZvbnQtc2l6ZTogY2xhbXAoM3JlbSwgNnZ3LCA0cmVtKTsgLy8gJGZvbnQtc2l6ZS1iYXNlICogMi41O1xuJGgyLWZvbnQtc2l6ZTogMy42cmVtOyAvLyBDdXN0b20gZm9udCBzaXplIGJ5IGRlc2lnblxuJGgzLWZvbnQtc2l6ZTogMnJlbTsgLy8gJGZvbnQtc2l6ZS1iYXNlICogMS43NTtcbiRoNC1mb250LXNpemU6IDEuOHJlbTtcbiRoNS1mb250LXNpemU6IDEuNnJlbTtcbiRoNi1mb250LXNpemU6IDEuNnJlbTtcblxuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogOHB4O1xuXG4kYnRuOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kYnRuLFxuICAgIChcbiAgICAgICAgYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnknKSxcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2xpZ2h0JyksXG4gICAgICAgIGhvdmVyLWJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdzZWNvbmRhcnknKSxcbiAgICAgICAgaG92ZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2xpZ2h0JyksXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXNcbiAgICApXG4pO1xuXG4kYnRuLWFsdDogKFxuICAgIGJnLWNvbG9yOiAkZ3JlZW4tZGFyayxcbiAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICBob3Zlci1iZy1jb2xvcjogJGdyZWVuLXNwLFxuICAgIGhvdmVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXNcbik7XG5cbiRidG4tZGlzYWJsZWQ6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRidG4tZGlzYWJsZWQsXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTIwMCksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdiYXNlLXRleHQnKSxcbiAgICAgICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0yMDApLFxuICAgICAgICBob3Zlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnYmFzZS10ZXh0JylcbiAgICApXG4pO1xuXG4kYnRuLWRhcms6IChcbiAgICBiZy1jb2xvcjogJGRhcmssXG4gICAgY29sb3I6ICNmZmYsXG4gICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS05MDApLFxuICAgIGhvdmVyLWNvbG9yOiAjZmZmXG4pO1xuXG4kaW5wdXQ6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRpbnB1dCxcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktMjAwJyksXG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJyksXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBcbiAgICApXG4pO1xuXG4kY2hlY2tib3gtY2hlY2s6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXFxcbiAgICB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxcXG4gICAgZmlsbD1cIm5vbmVcIlxcXG4gICAgc3Ryb2tlPVwiI3tyZ2JhKCRsaWdodCwgMSl9XCJcXFxuICAgIHN0cm9rZS13aWR0aD1cIjNcIj5cXFxuICAgIDxwb2x5bGluZSBwb2ludHM9XCIyMCA2IDkgMTcgNCAxMlwiPjwvcG9seWxpbmU+XFxcbiAgICA8L3N2Zz4nKTtcblxuJHBhc3N3b3JkLXNob3c6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1NzYgNTEyXCI+XFxcbiAgICA8cGF0aCBkPVwiTTI4OCA4MGMtNjUuMiAwLTExOC44IDI5LjYtMTU5LjkgNjcuN0M4OS42IDE4My41IDYzIDIyNiA0OS40IDI1NiA2MyAyODYgODkuNiAzMjguNSAxMjggMzY0LjNjNDEuMiAzOC4xIDk0LjggNjcuNyAxNjAgNjcuN3MxMTguOC0yOS42IDE1OS45LTY3LjdDNDg2LjQgMzI4LjUgNTEzIDI4NiA1MjYuNiAyNTZjLTEzLjYtMzAtNDAuMi03Mi41LTc4LjYtMTA4LjNDNDA2LjggMTA5LjYgMzUzLjIgODAgMjg4IDgwek05NS40IDExMi42QzE0Mi41IDY4LjggMjA3LjIgMzIgMjg4IDMyczE0NS41IDM2LjggMTkyLjYgODAuNmM0Ni44IDQzLjUgNzguMSA5NS40IDkzIDEzMS4xIDMuMyA3LjkgMy4zIDE2LjcgMCAyNC42LTE0LjkgMzUuNy00Ni4yIDg3LjctOTMgMTMxLjFDNDMzLjUgNDQzLjIgMzY4LjggNDgwIDI4OCA0ODBzLTE0NS41LTM2LjgtMTkyLjYtODAuNkM0OC42IDM1NiAxNy4zIDMwNCAyLjUgMjY4LjNjLTMuMy03LjktMy4zLTE2LjcgMC0yNC42QzE3LjMgMjA4IDQ4LjYgMTU2IDk1LjQgMTEyLjZ6TTI4OCAzMzZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBoLTJjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDM1LjMtMjguNyA2NC02NCA2NC01LjUgMC0xMC45LS43LTE2LTJ2MmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHptMC0yMDhhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2elwiLz5cXFxuICAgIDwvc3ZnPicpO1xuXG4kYW5nbGUtcmlnaHQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XFxcbiAgICA8cGF0aCBmaWxsPVwiI3tyZ2JhKG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSksIDAuOTk5KX1cIlxcXG4gICAgZD1cIk0yNzguNiAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjEwLjcgMjU2IDczLjQgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHpcIi8+XFxcbiAgICA8L3N2Zz4nKTtcblxuJGRpYWdvbmFsLWxpbmU6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLFxcXG4gICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIj5cXFxuICAgIDxsaW5lIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2U9XCIje3JnYmEobWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTQwMCksIDAuOTk5KX1cIlxcXG4gICAgeDE9XCIwXCIgeTE9XCIwXCIgeDI9XCIxMDBcIiB5Mj1cIjEwMFwiIHZlY3Rvci1lZmZlY3Q9XCJub24tc2NhbGluZy1zdHJva2VcIi8+XFxcbiAgICA8L3N2Zz4nKTtcblxuJGJyZWFkY3J1bWJzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kYnJlYWRjcnVtYnMsXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0xMDAnKSxcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2RhcmsnKSxcbiAgICAgICAgYWN0aXZlLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdncmF5LTYwMCcpXG4gICAgKVxuKTtcblxuLy8gaGVhZGVyXG4kaGVhZGVyLW5hdi1oZWlnaHQ6IDUuNXJlbTsgLy8gaGVpZ2h0IG9uIHNtYWxsIHNjcmVlbnNcbiRoZWFkZXItbmF2LWRlc2t0b3AtaGVpZ2h0OiAxNC41cmVtOyAvLyBoZWlnaHQgb24gYmlnZ2VyIHNjcmVlbnNcbiRoZWFkZXItdG9wLW5hdi1kZXNrdG9wLWhlaWdodDogMTQuNXJlbTsgLy8gaGVpZ2h0IG9uIGJpZ2dlciBzY3JlZW5zXG4kaGVhZGVyLW5hdi1icmVha3BvaW50OiAneGwnOyAvLyBicmVha3BvaW50IHdoZW4gbmF2IGNoYW5nZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcFxuJGhlYWRlci1zZWFyY2gtZGVza3RvcC1oZWlnaHQ6IDVyZW07XG4kaGVhZGVyLXNlYXJjaC1kZXNrdG9wLXdpZHRoOiAxMDAlO1xuXG4kc2Nyb2xsYmFyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5Jyk7XG5cbi8vIG1lbnVcbiRtZW51LWl0ZW0tZGVza3RvcC1wYWRkaW5nOiAxcmVtO1xuJG1lbnUtc2Vjb25kYXJ5LWxpbmtzLWJnOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdwcmltYXJ5LWRhcmsnKTtcbiRtZW51LXN1Ym1lbnUtc2luZ2xlLWNvbHVtbi1taW46IDk7XG5cbi8vIGZvb3RlclxuJGZvb3Rlci1ibG9jay1jb2xsYXBzZWQtaGVpZ2h0OiA2LjVyZW07XG5cbi8vIHZvdWNoZXIgUERGXG4vLyBOT1RFOiBpZiB0aGUgZm9udHMgdXNlZCBoZXJlIGFyZSBub24tc3RhbmRhcmQsIHRoZW4gdGhleSBuZWVkIHRvIGJlIHVwbG9hZGVkIGFuZCBzcGVjaWZpZWQgc2VwYXJhdGVseSBpbiB0aGVcbi8vIG1QREYgaW5pdGlhbGl6YXRpb24gKHNlZSB1c2FnZSBpbiBTRCBvciBzcGVhayB3aXRoIERCIDopKVxuJHZvdWNoZXI6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiR2b3VjaGVyLFxuICAgIChcbiAgICAgICAgcHJpbWFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLFxuICAgICAgICBwcmltYXJ5LWNvbG9yOiAjNDQ0LFxuICAgICAgICBzZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjogI2RkZCxcbiAgICAgICAgc2Vjb25kYXJ5LWNvbG9yOiAjNDQ0LFxuICAgICAgICBibG9jay1oaWdobGlnaHQtYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMCxcbiAgICAgICAgYmxvY2staGlnaGxpZ2h0LWNvbG9yOiAjNDQ0LFxuICAgICAgICBiYXNlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlLFxuICAgICAgICBiYXNlLWxpbmUtaGVpZ2h0OiAxLjUsXG4gICAgICAgIGhlYWRpbmctZm9udDogJGZvbnQtZmFtaWx5LWJhc2UsXG4gICAgICAgIGJvZHktZm9udDogJGZvbnQtZmFtaWx5LWJhc2UsXG4gICAgICAgIGxvZ28tbWF4LWhlaWdodDogMTBtbVxuICAgIClcbik7XG5cbi8vIEZ1bGwtd2lkdGggc2xpZGVyIGltYWdlIGRpbWVuc2lvbnMgKGFwcGxpZXMgdG8gZGVza3RvcCBvbmx5KVxuLy8gaW1hZ2Utd2lkdGg6IGltYWdlIHNpemVcbi8vIGltYWdlLWNvbnRlbnQtYXJlYS13aWR0aDogd2hlcmUgd2UgY2FuIHNhZmVseSBjcm9wIChmcm9tIHRoZSBmdWxsIHNpemUgaW1hZ2UpXG4kc2xpZGVyLWRlc2t0b3A6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRzbGlkZXItZGVza3RvcCxcbiAgICAoXG4gICAgICAgIGltYWdlLXdpZHRoOiAxOTAwcHgsXG4gICAgICAgIGltYWdlLWNvbnRlbnQtYXJlYS13aWR0aDogMTIwMHB4XG4gICAgKVxuKTtcbi8vIHNob3BpbyB2YXJpYWJsZXMgZW5kXG5cbi8vIENTUyB2YXJpYWJsZXNcbi8vIG1vdmUgdG8gYXBwLnNjc3NcbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5cbi5oZWFkZXItY2FydC1pdGVtIHtcbiAgICAuaGVhZGVyLWNhcnQtaXRlbS1kZWxldGUtd3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogMjAwZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGModmFyKC0tc3RhcnQtaGVpZ2h0LCAxMDAlKSAtIDEwcHgpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjE1cyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAmX19kZWxldGUgLmhlYWRlci1jYXJ0LWl0ZW0tZGVsZXRlLXdyYXBwZXIge1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDAuOHJlbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICAgIEBpbmNsdWRlIHNxdWFyZSg1cmVtKTtcblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmX192YXJpYW50IHtcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktNjAwJyk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gICAgfVxuXG4gICAgJl9fcXVhbnRpdHkge1xuICAgICAgICBtYXgtd2lkdGg6IDVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB3aWR0aDogMTIlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgLmhlYWRlci1jYXJ0LS1sICYge1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RvdGFsLXByaWNlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJl9fcXVhbnRpdHksXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdmF0LXByaWNlIHtcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktNjAwJyk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgfVxuXG4gICAgJl9fcmVtb3ZlIHtcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktNjAwJyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAyO1xuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICZfX2xpbms6aG92ZXIge1xuICAgICAgICAgICAgLmhlYWRlci1jYXJ0LWl0ZW1fX25hbWUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuXG4uaGVhZGVyLWNhcnQge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGhlYWRlci1uYXYtYnJlYWtwb2ludCkge1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciBhdXRvIGF1dG87XG4gICAgICAgIGdhcDogMnJlbTtcbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRoZWFkZXItbmF2LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkaGVhZGVyLW5hdi1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDZweDsgLy8gc2Nyb2xsYmFyIHdpZHRoICsgMnB4XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogLTZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtaXRlbSB7XG4gICAgICAgICZfX3F1YW50aXR5LFxuICAgICAgICAmX19wcmljZSxcbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdWFudGl0eSxcbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhdC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RhYmxlLWNlbGwge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgICZfX3ByaWNlLFxuICAgICZfX2Zvb3RlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGhlYWRlci1uYXYtYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDJyZW07XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5LWxpZ2h0KTtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcblxuICAgICAgICA+ICoge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XG5cbiAgICAgICAgICAgIGVtIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KTtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmNsLXZhdCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDcwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4Y2wtdmF0IHtcbiAgICAgICAgICAgIGJvcmRlci1ibG9jay1zdGFydDogMXB4IHNvbGlkIG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS0yMDApO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwLjVyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDQwMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Zvb3RlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnRuIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==*/