/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ispace.cz/sass/category.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
 */
.category {
  --category-desktop-min: 20rem;
  --category-desktop-ideal: 20vw;
  --category-desktop-max: 27rem;
  position: relative;
}
.category__title + .category__text {
  margin-top: 1em;
}
.category__title + .category__text:last-child {
  margin-bottom: 2rem;
}
.category__description + .promo-d {
  margin-top: 3rem;
}
@media (max-width: 991.98px) {
  .category {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }
  .category__detail, .category__sidebar {
    order: -1;
  }
}
.category__detail .embla {
  display: grid;
  grid-template-rows: auto auto;
}
.category__detail .embla__viewport, .category__detail .embla__controls {
  grid-column: 1;
}
.category__detail .embla__viewport {
  grid-row: 1;
}
.category__detail .embla__controls {
  pointer-events: none;
  grid-row: 1/span 2;
  display: grid;
  grid-template-rows: 1fr auto;
  grid-template-rows: subgrid;
}
.category__detail .embla__buttons {
  grid-row: 1;
  position: relative;
}
.category__detail .embla__button {
  pointer-events: all;
  filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.6));
}
.category__detail .embla__button--prev {
  transform: translate(calc(100% + 10px), -50%);
}
.category__detail .embla__button--next {
  transform: scaleX(-1) translate(calc(100% + 10px), -50%);
}
.category__detail .embla__pagination {
  text-align: center;
  pointer-events: all;
  grid-row: 2;
  margin-block: 20px 0;
}
@media (min-width: 992px) {
  .category {
    display: grid;
    column-gap: 3rem;
    grid-template-columns: clamp(var(--category-desktop-min), var(--category-desktop-ideal), var(--category-desktop-max)) 1fr;
    grid-template-rows: max-content max-content 1fr;
  }
  .category > * {
    grid-column: 2/3;
  }
  .category__sidebar {
    grid-column: 1/2;
    grid-row: 1/4;
  }
  .category__filters {
    margin-bottom: 1.5rem;
  }
}
@media (min-width: 1366px) {
  .category {
    column-gap: 7.6rem;
  }
}

@media (max-width: 991.98px) {
  .category-page:has(.time-limited-offers) #mainContent {
    overflow-x: hidden;
  }
}

.category {
  --category-desktop-ideal: 22vw;
  --category-desktop-max: 32.5rem;
  --category-desktop-clamp: clamp(var(--category-desktop-min), var(--category-desktop-ideal), var(--category-desktop-max));
}
@media (max-width: 991.98px) {
  .category {
    gap: 3rem;
  }
}
@media (min-width: 992px) {
  .category {
    column-gap: 2.5rem;
    grid-template-columns: var(--category-desktop-clamp) calc(100% - var(--category-desktop-clamp) - 2.5rem);
    grid-template-rows: max-content max-content max-content 1fr;
  }
  .category__detail {
    z-index: 1;
  }
}
@media (min-width: 1366px) {
  .category {
    column-gap: 2.5rem;
  }
}
@media (max-width: 991.98px) {
  .category__detail {
    order: -5;
  }
}
.category__detail .embla__buttons {
  position: absolute;
}
.category__detail .embla__button--prev {
  transform: translateY(0);
}
.category__detail .embla__button--next {
  transform: scaleX(-1) translateY(0);
}
.category__title ~ * + .category__text {
  margin-block-start: 1.5rem;
}
@media (min-width: 992px) {
  .category__title ~ * + .category__text {
    margin-block-start: 3rem;
  }
}
@media (max-width: 991.98px) {
  .category .time-limited-offers {
    order: -4;
  }
  .category .filter-current {
    margin-top: -21px;
  }
  .category .js-sticky-category-filters {
    order: -2;
  }
  .category__sort {
    order: -1;
  }
}
.category__sidebar {
  display: flex;
  flex-direction: column;
}
@media (max-width: 991.98px) {
  .category__sidebar {
    display: contents;
  }
}
@media (min-width: 992px) {
  .category__sidebar {
    grid-row: 1/5;
  }
}
.category__sidebar .time-limited-offers {
  padding: 50px;
  margin: -50px;
  overflow: hidden;
  flex: auto 0 0;
}
@media (min-width: 992px) {
  .category__sidebar .time-limited-offers {
    margin-bottom: -20px;
  }
}
.category__sidebar .time-limited-offers .product-card__perex {
  display: none;
}
@media (min-width: 992px) {
  .category__sidebar .time-limited-offers .product-card {
    text-align: center;
    padding: 20px;
    box-shadow: 0 10px 50px 0 rgba(0, 0, 0, 0.13);
    background-color: #fff;
    border-radius: 8px;
  }
  .category__sidebar .time-limited-offers .product-card__thumbnail {
    /* stylelint-disable-next-line length-zero-no-unit */
    --thumbnail-padding: 0px;
    margin: 0;
    max-height: 215px;
  }
  .category__sidebar .time-limited-offers .product-card__heading {
    font-size: 2rem;
    margin-top: 1.5rem;
  }
  .category__sidebar .time-limited-offers .product-card__inner {
    gap: 2.5rem;
  }
  .category__sidebar .time-limited-offers .product-card .card-price {
    justify-content: center;
    gap: 0 1.3rem;
  }
  .category__sidebar .time-limited-offers .product-card .card-price__full {
    color: #000;
  }
  .category__sidebar .time-limited-offers .product-card .card-price__discount, .category__sidebar .time-limited-offers .product-card .card-price__saving {
    font-size: 1.4rem;
  }
}
.category__sidebar .time-limited-offers__offer--details {
  padding-bottom: 100px;
  margin-bottom: -100px;
  width: calc(100% - 2px);
  margin-left: 1px;
}
.category__sidebar .time-limited-offers__offer--wrapper {
  max-height: max-content;
}
.category__filters {
  border-radius: 8px;
  left: 0;
  right: 0;
}
@media (min-width: 992px) {
  .category__filters {
    background-color: rgba(0, 141, 210, 0.15);
    padding: 2rem;
  }
}
@media (min-width: 992px) {
  .category__text {
    padding-block-end: 0;
    transition: 0s padding 0.05s;
  }
  .category__text:has(p:last-of-type[style*=center] + .collapsed) {
    text-align: center;
  }
  .category__text p:last-of-type:has(+ .collapsed) {
    display: inline;
  }
  .category__text:has(> .collapsed) {
    padding-block-end: clamp(1.8rem, 3vw, 2.4rem);
  }
}
.category__text .btn-link[data-toggle=collapse] {
  display: none;
  font-weight: normal;
  font-variation-settings: "wght" 700;
}
.category__text .btn-link[data-toggle=collapse].collapsed {
  display: inline-block;
}
@media (max-width: 991.98px) {
  .category__text .btn-link[data-toggle=collapse] {
    color: currentcolor;
    background-color: #f3f3f3;
    border-radius: 8px;
    padding: 0.2rem 1rem;
    margin-top: 1rem;
    margin-bottom: 1.8rem;
  }
}
@media (min-width: 992px) {
  .category__text .btn-link[data-toggle=collapse] {
    color: #007dba;
    text-decoration: underline;
    margin: 0;
    transition: color 0.15s linear;
  }
  .category__text .btn-link[data-toggle=collapse]:hover {
    color: currentcolor;
    text-decoration: none;
  }
}
.category__text .btn-link[data-toggle=collapse]::after {
  content: " ";
  display: inline-block;
  width: 0.8rem;
  height: 0.8rem;
  border: 2px solid currentcolor;
  border-top: 0;
  border-left: 0;
  transform: rotate(45deg);
  margin-left: 0.5rem;
  margin-bottom: 0.4rem;
}
.category__description {
  overflow: hidden;
  transition: height 0.25s ease-in;
}
.category__description p:first-child {
  margin-top: clamp(1.8rem, 3vw, 2.4rem);
}
.category__description.collapse:not(.in) {
  height: 0;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmlzcGFjZS5jei5hc2dhcmQuY2F0ZWdvcnkuNTk0NTQ0ZDAzNzhmOTk0NjM0NGMuY3NzIiwibWFwcGluZ3MiOiI7OztBQUdBOzs7OztFQUFBO0FBaUJBOzs7Ozs7RUFBQTtBQytQQTs7RUFBQTtBQStIQTs7RUFBQTtBQ2xaQTtFQUNJO0VBQ0E7RUFDQTtFQUVBO0FDbUJKO0FEakJJO0VBQ0k7QUNtQlI7QURqQlE7RUFDSTtBQ21CWjtBRGRRO0VBQ0k7QUNnQlo7QUMyQ0k7RUY1RUo7SUFzQlE7SUFDQTtJQUNBO0VDZU47RURiTTtJQUVJO0VDY1Y7QUFDRjtBRFZRO0VBQ0k7RUFDQTtBQ1laO0FEVlk7RUFFSTtBQ1doQjtBRFJZO0VBQ0k7QUNVaEI7QURQWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUNTaEI7QUROWTtFQUNJO0VBQ0E7QUNRaEI7QURMWTtFQUNJO0VBQ0E7QUNPaEI7QURKZ0I7RUFFSTtBQ0twQjtBREZnQjtFQUVJO0FDR3BCO0FEQ1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQ0NoQjtBQ2pCSTtFRi9ESjtJQXFGUTtJQUNBLGdCRzVEYztJSDZEZCx5SEFDSTtJQUVKO0VDSE47RURLTTtJQUNJO0VDSFY7RURNTTtJQUNJO0lBQ0E7RUNKVjtFRE9NO0lBQ0k7RUNMVjtBQUNGO0FDbkNJO0VGL0RKO0lBMkdRO0VDTE47QUFDRjs7QUMzQkk7RURuRUk7SUFDSTtFQWtHVjtBQUNGOztBQTlGQTtFQUNJO0VBQ0E7RUFDQTtBQWlHSjtBQ3ZDSTtFRDdESjtJQU1RO0VBa0dOO0FBQ0Y7QUN6REk7RURoREo7SUFVUTtJQUNBO0lBQ0E7RUFtR047RUFqR007SUFDSTtFQW1HVjtBQUNGO0FDbkVJO0VEaERKO0lBb0JRO0VBbUdOO0FBQ0Y7QUMzREk7RUR0Q0E7SUFFUTtFQW1HVjtBQUNGO0FBaEdZO0VBQ0k7QUFrR2hCO0FBOUZnQjtFQUNJO0FBZ0dwQjtBQTdGZ0I7RUFDSTtBQStGcEI7QUF4RlE7RUFDSTtBQTBGWjtBQ3pGSTtFREZJO0lBSVE7RUEyRmQ7QUFDRjtBQ2pGSTtFRExJO0lBQ0k7RUF5RlY7RUF0Rk07SUFFSTtFQXVGVjtFQXBGTTtJQUNJO0VBc0ZWO0VBbkZNO0lBQ0k7RUFxRlY7QUFDRjtBQWxGSTtFQUNJO0VBQ0E7QUFvRlI7QUNuR0k7RURhQTtJQUtRO0VBcUZWO0FBQ0Y7QUNySEk7RUQwQkE7SUFTUTtFQXNGVjtBQUNGO0FBcEZRO0VBRUk7RUFDQTtFQUNBO0VBQ0E7QUFxRlo7QUNoSUk7RURzQ0k7SUFRUTtFQXNGZDtBQUNGO0FBbkZnQjtFQUNJO0FBcUZwQjtBQ3hJSTtFRGlEUTtJQU1RO0lBQ0E7SUFDQTtJQUNBO0lBQ0Esa0JFUUk7RUY2RXRCO0VBbkZrQjtJQUNJO0lBQ0E7SUFFQTtJQUNBO0VBb0Z0QjtFQWpGa0I7SUFDSTtJQUNBO0VBbUZ0QjtFQWhGa0I7SUFDSTtFQWtGdEI7RUEvRWtCO0lBQ0k7SUFDQTtFQWlGdEI7RUEvRXNCO0lBQ0k7RUFpRjFCO0VBOUVzQjtJQUVJO0VBK0UxQjtBQUNGO0FBMUVZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUE0RWhCO0FBekVZO0VBQ0k7QUEyRWhCO0FBckVJO0VBRUksa0JFM0NnQjtFRjRDaEI7RUFDQTtBQXNFUjtBQ3RMSTtFRDRHQTtJQU9RO0lBQ0E7RUF1RVY7QUFDRjtBQzVMSTtFRHdIQTtJQUVRO0lBQ0E7RUFzRVY7RUFqRVU7SUFDSTtFQW1FZDtFQS9EVTtJQUNJO0VBaUVkO0VBOURVO0lBQ0k7RUFnRWQ7QUFDRjtBQTdEUTtFQUNJO0VBQ0E7RUFDQTtBQStEWjtBQTdEWTtFQUNJO0FBK0RoQjtBQ3RNSTtFRGlJSTtJQVVRO0lBQ0E7SUFDQSxrQkV2RlE7SUZ3RlI7SUFDQTtJQUNBO0VBK0RkO0FBQ0Y7QUM3Tkk7RUQ4SUk7SUFtQlE7SUFDQTtJQUNBO0lBQ0E7RUFnRWQ7RUE5RGM7SUFDSTtJQUNBO0VBZ0VsQjtBQUNGO0FBN0RZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUErRGhCO0FBMURJO0VBQ0k7RUFDQTtBQTREUjtBQTFEUTtFQUNJO0FBNERaO0FBekRRO0VBQ0k7QUEyRFosQyIsInNvdXJjZXMiOlsid2VicGFjazovL3Nob3Bpby8uL2RhdGEvd3d3L3RlbXBsYXRlcy9hc2dhcmQvaXNwYWNlLmN6L3Nhc3MvYXBwL2Fic3RyYWN0cy9fZm5zLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9pc3BhY2UuY3ovc2Fzcy9hcHAvYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9zaG9waW8vLi9kYXRhL3d3dy90ZW1wbGF0ZXMvYXNnYXJkL2RlZmF1bHQvc2Fzcy9jYXRlZ29yeS9fYWxsLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9pc3BhY2UuY3ovc2Fzcy9jYXRlZ29yeS5zY3NzIiwid2VicGFjazovL3Nob3Bpby8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vc2hvcGlvLy4vZGF0YS93d3cvdGVtcGxhdGVzL2FzZ2FyZC9pc3BhY2UuY3ovc2Fzcy9fdGhlbWUtdmFyaWFibGVzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczpsaXN0JztcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIG5leHQgc21hbGxlciBicmVha3BvaW50IGZyb20gdGhlIGdpdmVuIGJyZWFrcG9pbnQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gVGhlIGJyZWFrcG9pbnQgZm9yIHdoaWNoIHRvIGZpbmQgdGhlIG5leHQgc21hbGxlciBicmVha3BvaW50LlxuICogQHJldHVybiB7U3RyaW5nfG51bGx9IC0gVGhlIG5leHQgc21hbGxlciBicmVha3BvaW50LCBvciBudWxsIGlmIG5vIHNtYWxsZXIgYnJlYWtwb2ludCBpcyBhdmFpbGFibGUuXG4gKi9cbkBmdW5jdGlvbiBnZXQtc21hbGxlci1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgJGtleXM6IG1hcC5rZXlzKCRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5kZXg6IGxpc3QuaW5kZXgoJGtleXMsICRicmVha3BvaW50KTtcblxuICAgIEBpZiBub3QgJGluZGV4IG9yICRpbmRleCA9PSAxIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIEByZXR1cm4gbGlzdC5udGgoJGtleXMsICRpbmRleCAtIDEpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmV4dCBsYXJnZXIgYnJlYWtwb2ludCBmcm9tIHRoZSAkZ3JpZC1icmVha3BvaW50cyBtYXAuXG4gKlxuICogQGZ1bmN0aW9uIGdldC1iaWdnZXItYnJlYWtwb2ludFxuICogQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gVGhlIGN1cnJlbnQgYnJlYWtwb2ludCB0byBmaW5kIHRoZSBuZXh0IGxhcmdlciBvbmUgZm9yLlxuICogQHJldHVybiB7U3RyaW5nIHwgbnVsbH0gLSBUaGUgbmV4dCBsYXJnZXIgYnJlYWtwb2ludCBvciBudWxsIGlmIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgaXMgdGhlIGxhcmdlc3Qgb3Igbm90IGZvdW5kLlxuICovXG5AZnVuY3Rpb24gZ2V0LWxhcmdlci1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgJGtleXM6IG1hcC5rZXlzKCRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5kZXg6IGxpc3QuaW5kZXgoJGtleXMsICRicmVha3BvaW50KTtcblxuICAgIEBpZiBub3QgJGluZGV4IG9yICRpbmRleCA9PSBsaXN0Lmxlbmd0aCgkYnJlYWtwb2ludCkge1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgQHJldHVybiBsaXN0Lm50aCgka2V5cywgJGluZGV4ICsgMSk7XG59XG4iLCJAdXNlICdzYXNzOmNvbG9yJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5cbi8vICogVmlzdWFscyBmb3Igc21hbGwgYmxvY2tzIHdpdGggYSBob3ZlciAvIGZvY3VzLXdpdGhpbiBlZmZlY3QgaW5jbHVkZWRcbi8vICogVG8gbW9kaWZ5IGRlZmF1bHQgdmFsdWVzLCB5b3UgY291bGQgdXNlIEBpbmNsdWRlIHNtYWxsLWJsb2NrLWNvbXBvbmVudChtYXAuc2V0KCRjb25maWcsICdyYWRpdXMnLCAyMHB4KSlcbkBtaXhpbiBzbWFsbC1ibG9jay1jb21wb25lbnQoXG4gICAgJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cyxcbiAgICAkYmFja2dyb3VuZC1zdGFydDogY29sb3IuYWRqdXN0KG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1saWdodCksICRhbHBoYTogLTEpLFxuICAgICRiYWNrZ3JvdW5kLWVuZDogY29sb3IuYWRqdXN0KG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeS1saWdodCksICRhbHBoYTogMCksXG4gICAgJGJveC1zaGFkb3ctc3RhcnQ6IDAgNHB4IDIwcHggMCAjMDAwMDAwMTQsXG4gICAgJGJveC1zaGFkb3ctZW5kOiAwIDRweCA0cHggMCAjMDAwMDAwMTQsXG4gICAgJHRyYW5zaXRpb246ICdiYWNrZ3JvdW5kLWNvbG9yIGxpbmVhciAwLjE1cywgYm94LXNoYWRvdyBsaW5lYXIgMC4xNXMnXG4pIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLXN0YXJ0O1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LXN0YXJ0O1xuICAgIHRyYW5zaXRpb246ICN7JHRyYW5zaXRpb259O1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWVuZDtcbiAgICAgICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctZW5kO1xuICAgIH1cbn1cblxuQG1peGluIHdpZGUtY2FyZCgkYnJlYWtwb2ludDogJ3hsJykge1xuICAgICRzbWFsbGVyLWJyZWFrcG9pbnQ6IGdldC1sYXJnZXItYnJlYWtwb2ludCgkYnJlYWtwb2ludCk7XG5cbiAgICAucHJvZHVjdC1jYXJkIHtcbiAgICAgICAgLS10aHVtYm5haWwtd2lkdGg6IDIwMHB4O1xuICAgICAgICAtLWZsYWctZm9udC1zaXplOiAxLjJyZW07XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IDAgcmdiKDAsIDAsIDAsIDAuMDcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICZfX2lubmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW07XG4gICAgICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHNtYWxsZXItYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRzbWFsbGVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAtLXRodW1ibmFpbC13aWR0aDogMjgwcHg7XG4gICAgICAgICAgICAgICAgLS1mbGFnLWZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS10aHVtYm5haWwtd2lkdGgpIDFmciBhdXRvO1xuICAgICAgICAgICAgICAgIGdyaWQtYXV0by1yb3dzOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cmVtO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3JlbSA0cmVtIDNyZW0gMDtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3ByaW1hcnksXG4gICAgICAgICAgICAmX19zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS10aHVtYm5haWwtd2lkdGgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogYXV0bztcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI0MHB4O1xuICAgICAgICAgICAgICAgICAgICBpbnNldDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fdmFyaWFudHMge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA2O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wZXJleCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcGFyYW1ldGVycyB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogNDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYXZhaWxhYmlsaXR5IHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA1O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDY7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgLmNhcmQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDAgMS42cmVtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgICAgICZfX2Z1bGwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBkYXJrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2Rpc2NvdW50LFxuICAgICAgICAgICAgICAgICAgICAmX19zYXZpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2ZsYWdzIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAtMTBweDtcbiAgICAgICAgICAgICAgICByaWdodDogLTEzcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBwbGFjZS1zZWxmOiBzdGFydCBlbmQ7XG4gICAgICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG5cbiAgICAgICAgICAgICAgICBbY2xhc3MqPSdfX2l0ZW0nXSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMjJlbSAwLjYzZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mbGFnLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzKj0nX190ZXh0J10ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNDAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19hZGQge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiA2O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIwNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gKiBBZGQgaW52ZXJ0ZWQgYm9yZGVyIHJhZGl1cyBjb3JuZXJzXG4vLyAqIG1hc2sgdmFsdWVzIGFyZSBpbiB0aGUgb3JkZXIgdGwgLyB0ciAvIGJyIC8gYmxcbi8vICogTm90ZSB0aGF0IGFsbCB1bml0cyBzaG91bGQgYmUgaW4gcHhcbi8vICogQHBhcmFtIHtsaXN0fSAtIHNwZWNpZmljIGJvcmRlciBjb3JuZXJzICRjb3JuZXJzIChhbGx8dGx8dHJ8Ymx8YnIpXG5AbWl4aW4gaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cygkY29ybmVyczogJ2FsbCcpIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAkdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXM6IFsnYWxsJywgJ3RsJywgJ3RyJywgJ2JsJywgJ2JyJywgJ3QnLCAncicsICdiJywgJ2wnXTtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cztcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRsOiAwcHg7XG4gICAgJGludmVydGVkLWJvcmRlci10cjogMHB4O1xuICAgICRpbnZlcnRlZC1ib3JkZXItYnI6IDBweDtcbiAgICAkaW52ZXJ0ZWQtYm9yZGVyLWJsOiAwcHg7XG5cbiAgICAtLWludmVydGVkLWJvcmRlci1ncmFkaWVudDogIzAwMDAgOTglLCAjMDAwO1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1czogI3skaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1c307XG5cbiAgICBAaWYgbm90IGxpc3QuaW5kZXgoJHZhbGlkLWJvcmRlci1yYWRpdXMtcGFyYW1zLCAkY29ybmVycykge1xuICAgICAgICBAZXJyb3IgXCIjeyRjb3JuZXJzfSBpcyBub3QgYSB2YWxpZCBzaWRlLiBFeHBlY3RlZCBvbmUgb2YgI3skdmFsaWQtYm9yZGVyLXJhZGl1cy1wYXJhbXN9LlwiO1xuICAgIH1cblxuICAgIEBpZiAkY29ybmVycyA9PSAnYWxsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdGw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAkaW52ZXJ0ZWQtYm9yZGVyLXRyOiAkaW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3RsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdGw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3RyJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2JyJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYnI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2JsJyB7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3QnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItdHI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ3InIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10cjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYnI6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2InIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci1icjogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH0gQGVsc2UgaWYgJGNvcm5lcnMgPT0gJ2wnIHtcbiAgICAgICAgJGludmVydGVkLWJvcmRlci10bDogJGludmVydGVkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICRpbnZlcnRlZC1ib3JkZXItYmw6ICRpbnZlcnRlZC1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bDogI3skaW52ZXJ0ZWQtYm9yZGVyLXRsfTtcbiAgICAtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHI6ICN7JGludmVydGVkLWJvcmRlci10cn07XG4gICAgLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyOiAjeyRpbnZlcnRlZC1ib3JkZXItYnJ9O1xuICAgIC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibDogI3skaW52ZXJ0ZWQtYm9yZGVyLWJsfTtcblxuICAgIG1hc2s6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKSBhdCAwIDAsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDAgMCxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIGF0IDEwMCUgMCwgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLWdyYWRpZW50KSkgMTAwJSAwLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCkgYXQgMCAxMDAlLCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItZ3JhZGllbnQpKSAwIDEwMCUsXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJyKSBhdCAxMDAlIDEwMCUsIHZhcigtLWludmVydGVkLWJvcmRlci1ncmFkaWVudCkpIDEwMCUgMTAwJTtcbiAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIG1hc2stc2l6ZTogNTElIDUxJTtcblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWludmFsaWQtcG9zaXRpb24tZGVjbGFyYXRpb25cbiAgICAvLyBEaXNhYmxlIGZvciBvbGRlciBTYWZhcmkgYnJvd3NlcnMgYXMgdGhlIGxheW91dCBicmVha3MgdGhlcmUgd2l0aCBtYXNrXG4gICAgQHN1cHBvcnRzIChiYWNrZ3JvdW5kOiAtd2Via2l0LW5hbWVkLWltYWdlKGkpKSB7XG4gICAgICAgIG1hc2s6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gV2UgY2Fubm90IGNoZWNrIGZvciBAc3VwcG9ydHMgKGNsaXAtcGF0aDogc2hhcGUoKSkgYmVjYXVzZSwgd2hpbGUgRmlyZWZveCBzdXBwb3J0cyB0aGUgcnVsZSwgaXQgZG9lcyBub3Qgd29yayAtIHlldCAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxMDMyOClcbiAgICAvLyBCdXQsIGFzIHNoYXBlKCkgY2FuIGJlIHVzZWQgaW4gYW5pbWF0aW9uIHBhdGhzLCBhbmQgQ2hyb21lIGFuZCBjdXJyZW50IFNhZmFyaSBzdXBwb3J0IHRoaXMgaW1wbGVtZW50YXRpb24uXG4gICAgLy8gTk9URTogV2Ugc2hvdWxkIHN0aWxsIGNoZWNrIHRvIHNlZSB3aGVuIGNsaXAtcGF0aDogc2hhcGUoKSBpcyBmdWxseSBlbmFibGVkIGluIEZpcmVmb3gsIGJ1dCBpbiB0aGUgbWVhbnRpbWUsIG1hc2tpbmcgd29ya3MgbmljZWx5IHRoZXJlXG4gICAgQHN1cHBvcnRzIChvZmZzZXQtcGF0aDogc2hhcGUoZnJvbSB0b3AgbGVmdCwgY3VydmUgdG8gNTAlIDUwJSB3aXRoIDI1JSAxMDAlKSkge1xuICAgICAgICBtYXNrOiBub25lO1xuICAgICAgICBjbGlwLXBhdGg6IHNoYXBlKFxuICAgICAgICAgICAgZnJvbSAwIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpLFxuICAgICAgICAgICAgYXJjIGJ5IHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdGwpIGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCkgKiAtMSkgb2YgdmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy10bCksXG4gICAgICAgICAgICBsaW5lIHRvIGNhbGMoMTAwJSAtIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpKSAwLFxuICAgICAgICAgICAgYXJjIGJ5IHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtdHIpLFxuICAgICAgICAgICAgbGluZSB0byAxMDAlIGNhbGMoMTAwJSAtIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpKSxcbiAgICAgICAgICAgIGFyYyBieSBjYWxjKHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpICogLTEpIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpIG9mIHZhcigtLWludmVydGVkLWJvcmRlci1yYWRpdXMtYnIpLFxuICAgICAgICAgICAgbGluZSB0byB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAxMDAlLFxuICAgICAgICAgICAgYXJjIGJ5IGNhbGModmFyKC0taW52ZXJ0ZWQtYm9yZGVyLXJhZGl1cy1ibCkgKiAtMSkgY2FsYyh2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSAqIC0xKSBvZiB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLWJsKSxcbiAgICAgICAgICAgIGxpbmUgdG8gMCB2YXIoLS1pbnZlcnRlZC1ib3JkZXItcmFkaXVzLXRsKVxuICAgICAgICApO1xuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWludmFsaWQtcG9zaXRpb24tZGVjbGFyYXRpb25cbn1cblxuLy8gTGFiZWwgaXMgc2hpZnRlZCB3aGVuIC1cbi8vIGlucHV0IGlzIGZvY3VzZWRcbi8vIGhhcyB2YWx1ZSBwcm9wIGJ1dCBub3QgcGxhY2Vob2xkZXIgc2hvd24gKGhhcHBlbmRzIHdoZW4gcHJlZmlsbGVkIGlucHV0IGlzIG1hbnVhbGx5IGNsZWFyZWQpXG4vLyBoYXMgc29tZSB0ZXh0IHBsYWNlaG9sZGVyXG4vLyBpcyBhdXRvZmlsbGVkXG5AbWl4aW4gZm9ybS1pbnB1dC1sYWJlbC1zZWxlY3RvcnMge1xuICAgICY6aGFzKDp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSk6bm90KDp3aGVyZSg6cGxhY2Vob2xkZXItc2hvd24pKTppcyg6d2hlcmUoOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pKSwgOndoZXJlKDpub3QoW3BsYWNlaG9sZGVyPScnXSwgW3BsYWNlaG9sZGVyPScgJ10pKSwgOm5vdChbdmFsdWU9JyddKSwgOi13ZWJraXQtYXV0b2ZpbGwsIDphdXRvZmlsbCwgOmZvY3VzKSkgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCksXG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTppcyg6d2hlcmUoOnBsYWNlaG9sZGVyLXNob3duOm5vdChbcGxhY2Vob2xkZXI9JyddLCBbcGxhY2Vob2xkZXI9JyAnXSkpKSkgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCksXG4gICAgJjpoYXMoOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTppcyg6Zm9jdXMpKSA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXNldCBpU3BhY2UgY3VzdG9tIGZvcm0gaW5wdXQgc3R5bGVzIHRvIGJlIGFibGUgdG8gZGVzaWduIHNwZWNpYWwgaW5wdXRzIG1vcmUgZWFzaWx5XG4gKi9cbkBtaXhpbiByZXNldC1mb3JtLWlucHV0IHtcbiAgICAmOmhhcyg6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPSdjaGVja2JveCddLCBbdHlwZT0ncmFkaW8nXSksIHRleHRhcmVhLCBzZWxlY3QpKSB7XG4gICAgICAgIHotaW5kZXg6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IGluaXRpYWw7XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgcGFkZGluZzogaW5pdGlhbDtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIDp3aGVyZSguZm9ybS1maWVsZCA+ICopIHtcbiAgICAgICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkX19pbnB1dCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoLmVycm9ycykge1xuICAgICAgICAgICAgLS1pbnB1dC1iZzogaW5pdGlhbDtcblxuICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpoYXMoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgLmZvcm0tZmllbGQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbml0aWFsO1xuICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICAgICAgICAgICAgei1pbmRleDogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IGluaXRpYWw7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2stZW5kOiBpbml0aWFsO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKC5mb3JtLWZpZWxkLS1zbSkge1xuICAgICAgICAgICAgLmZvcm0taW5wdXRfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6bm90KDp3aGVyZSg6Zm9jdXMtd2l0aGluLCBbZGlzYWJsZWRdKSkge1xuICAgICAgICAgICAgICAgICY6d2hlcmUoOm5vdCg6aGFzKC5lcnJvcnMpKSkge1xuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0tZmllbGQtY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA6d2hlcmUoLmZvcm0taW5wdXRfX2xhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aGFzKC5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgOndoZXJlKC5mb3JtLWZpZWxkLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgOndoZXJlKC5mb3JtLWlucHV0X19sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWxhYmVsLXNlbGVjdG9ycyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogU3R5bGVzIHRvIGhpZGUgdGhlIHNjcm9sbGJhciBidXQgc3RpbGwgYWxsb3cgc2Nyb2xsaW5nXG4gKi9cbkBtaXhpbiBzY3JvbGwtd2l0aG91dC1zY3JvbGxiYXIge1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyAvKiBJRSBhbmQgRWRnZSAqL1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuXG4gICAgLyogQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhICovXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gQWx0ZXJuYXRpdmUgZGlzYy1saWtlIHN0eWxpbmcgZm9yIHJhZGlvIGFuZCBjaGVja2JveCBpbnB1dHNcbkBtaXhpbiBpbnB1dC1kaXNjIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMCAxMHB4IDAgYXV0bztcbiAgICBtYXJnaW4tYmxvY2s6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgZmxleDogMCAwIDE1cHg7IC8vIGluIGNhc2UgaXQncyBwYXJ0IG9mIGEgZmxleCBsYXlvdXRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYigwLCAwLCAwLCAwLjEpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDtcbn1cblxuLy8gY2FyZCBib3hlcyBhcmUgdHlwaWNhbGx5IHVzZWQgb24gcHJvZHVjdCBkZXRhaWwgc2VydmljZXMsIGNoZWNrb3V0IHRyYW5zcG9ydC9wYXltZW50IG9wdGlvbnMsXG4vLyBBTkQgcHJlLWNoZWNrb3V0IHBhZ2VcbkBtaXhpbiBjYXJkLWJveCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBsaWdodCk7XG4gICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktOTAwJyk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC5nZXQoJGlucHV0LCBib3JkZXItY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTRweCAzMHB4IDE0cHggMjBweDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAtMXB4O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgIFt0eXBlPSdjaGVja2JveCddLFxuICAgIFt0eXBlPSdyYWRpbyddIHtcbiAgICAgICAgQGluY2x1ZGUgaW5wdXQtZGlzYztcbiAgICB9XG5cbiAgICAmOmhhcyg6Y2hlY2tlZCksXG4gICAgJltjbGFzcyo9J3NlbGVjdGVkJ10ge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgW3R5cGU9J2NoZWNrYm94J106bm90KC5maXgtc3BlY2lmaWNpdHkpLFxuICAgICAgICBbdHlwZT0ncmFkaW8nXTpub3QoLmZpeC1zcGVjaWZpY2l0eSkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnktZGFyayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdCg6aGFzKFtkaXNhYmxlZF0pKSxcbiAgICAmOmZvY3VzLXdpdGhpbjpub3QoOmhhcyhbZGlzYWJsZWRdKSkge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgZ3JheS00MDApO1xuXG4gICAgICAgIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCksXG4gICAgICAgIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aGFzKFtkaXNhYmxlZF0pOm5vdCguZml4LXNwZWNpZmljaXR5KSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgbGlnaHQpO1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jYXRlZ29yeSB7XG4gICAgLS1jYXRlZ29yeS1kZXNrdG9wLW1pbjogMjByZW07XG4gICAgLS1jYXRlZ29yeS1kZXNrdG9wLWlkZWFsOiAyMHZ3O1xuICAgIC0tY2F0ZWdvcnktZGVza3RvcC1tYXg6IDI3cmVtO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJl9fdGl0bGUgKyAmX190ZXh0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICArIC5wcm9tby1kIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJyZW07XG5cbiAgICAgICAgJl9fZGV0YWlsLFxuICAgICAgICAmX19zaWRlYmFyIHtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2RldGFpbCB7XG4gICAgICAgIC5lbWJsYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XG5cbiAgICAgICAgICAgICZfX3ZpZXdwb3J0LFxuICAgICAgICAgICAgJl9fY29udHJvbHMge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX192aWV3cG9ydCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2NvbnRyb2xzIHtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIGF1dG87XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBzdWJncmlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19idXR0b25zIHtcbiAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAxcHggcmdiKDAsIDAsIDAsIDAuNikpO1xuXG4gICAgICAgICAgICAgICAgLy8gb3ZlcmxheSBidXR0b25zXG4gICAgICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgMTBweCBmcm9tIHRoZSBsZWZ0IGVkZ2VcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygxMDAlICsgMTBweCksIC01MCUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgICAgICAvLyBtb3ZlIDEwcHggZnJvbSB0aGUgcmlnaHQgZWRnZVxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgdHJhbnNsYXRlKGNhbGMoMTAwJSArIDEwcHgpLCAtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX3BhZ2luYXRpb24ge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMjBweCAwOyAvLyBiZXR0ZXIgdmlzdWFsIGJhbGFuY2UuLi5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBjb2x1bW4tZ2FwOiAkY29udGFpbmVyLXBhZGRpbmcteDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOlxuICAgICAgICAgICAgY2xhbXAodmFyKC0tY2F0ZWdvcnktZGVza3RvcC1taW4pLCB2YXIoLS1jYXRlZ29yeS1kZXNrdG9wLWlkZWFsKSwgdmFyKC0tY2F0ZWdvcnktZGVza3RvcC1tYXgpKVxuICAgICAgICAgICAgMWZyO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1heC1jb250ZW50IG1heC1jb250ZW50IDFmcjtcblxuICAgICAgICA+ICoge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2lkZWJhciB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIDI7XG4gICAgICAgICAgICBncmlkLXJvdzogMSAvIDQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWx0ZXJzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGMoJGNvbnRhaW5lci1wYWRkaW5nLXggLyAyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ3h4bCcpIHtcbiAgICAgICAgY29sdW1uLWdhcDogNy42cmVtO1xuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6Y29sb3InO1xuQGltcG9ydCAndGhlbWUtdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL2RlZmF1bHQvc2Fzcy9hc2dhcmQtdmFyaWFibGVzJztcbkBpbXBvcnQgJ2FwcC9hYnN0cmFjdHMvYWxsJztcbkBpbXBvcnQgJy4uLy4uL2RlZmF1bHQvc2Fzcy9jYXRlZ29yeS9hbGwnO1xuXG4uY2F0ZWdvcnktcGFnZTpoYXMoLnRpbWUtbGltaXRlZC1vZmZlcnMpIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICAjbWFpbkNvbnRlbnQge1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2F0ZWdvcnkge1xuICAgIC0tY2F0ZWdvcnktZGVza3RvcC1pZGVhbDogMjJ2dztcbiAgICAtLWNhdGVnb3J5LWRlc2t0b3AtbWF4OiAzMi41cmVtO1xuICAgIC0tY2F0ZWdvcnktZGVza3RvcC1jbGFtcDogY2xhbXAodmFyKC0tY2F0ZWdvcnktZGVza3RvcC1taW4pLCB2YXIoLS1jYXRlZ29yeS1kZXNrdG9wLWlkZWFsKSwgdmFyKC0tY2F0ZWdvcnktZGVza3RvcC1tYXgpKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgIGdhcDogM3JlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdsZycpIHtcbiAgICAgICAgY29sdW1uLWdhcDogMi41cmVtO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNhdGVnb3J5LWRlc2t0b3AtY2xhbXApIGNhbGMoMTAwJSAtIHZhcigtLWNhdGVnb3J5LWRlc2t0b3AtY2xhbXApIC0gMi41cmVtKTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtYXgtY29udGVudCBtYXgtY29udGVudCBtYXgtY29udGVudCAxZnI7XG5cbiAgICAgICAgJl9fZGV0YWlsIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCd4eGwnKSB7XG4gICAgICAgIGNvbHVtbi1nYXA6IDIuNXJlbTtcbiAgICB9XG5cbiAgICAmX19kZXRhaWwge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICAgICAgb3JkZXI6IC01O1xuICAgICAgICB9XG5cbiAgICAgICAgLmVtYmxhIHtcbiAgICAgICAgICAgICZfX2J1dHRvbnMge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLy8gdXNlIGlzcGFjZSBkZWZhdWx0IHN0eWxlIGhlcmVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyAvLyB1c2UgaXNwYWNlIGRlZmF1bHQgc3R5bGUgaGVyZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgdHJhbnNsYXRlWSgwKTsgLy8gdXNlIGlzcGFjZSBkZWZhdWx0IHN0eWxlIGhlcmVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIH4gKiArIC5jYXRlZ29yeV9fdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDEuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgnbGcnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAzcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCdsZycpIHtcbiAgICAgICAgLnRpbWUtbGltaXRlZC1vZmZlcnMge1xuICAgICAgICAgICAgb3JkZXI6IC00O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpbHRlci1jdXJyZW50IHtcbiAgICAgICAgICAgIC8vIENhdGVnb3J5IGhlYWRlciBoYXMgZ2FwIG9mIDMwcHggc28gd2UgbmVlZCB0byBhZGp1c3QgbWFyZ2luXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMjFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5qcy1zdGlja3ktY2F0ZWdvcnktZmlsdGVycyB7XG4gICAgICAgICAgICBvcmRlcjogLTI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zb3J0IHtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NpZGViYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bignbGcnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDEgLyA1O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpbWUtbGltaXRlZC1vZmZlcnMge1xuICAgICAgICAgICAgLy8gbmVnYXRpdmUgbWFyZ2luIG5lZWRlZCBmb3Igb3ZlcmZsb3dpbmcgc2hhZG93XG4gICAgICAgICAgICBwYWRkaW5nOiA1MHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAtNTBweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBmbGV4OiBhdXRvIDAgMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgnbGcnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWNhcmQge1xuICAgICAgICAgICAgICAgICZfX3BlcmV4IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdsZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggNTBweCAwIGNvbG9yLm1peChtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJyksIHRyYW5zcGFyZW50LCAxMyUpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICAgICAgICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbGVuZ3RoLXplcm8tbm8tdW5pdCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgLS10aHVtYm5haWwtcGFkZGluZzogMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2hlYWRpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faW5uZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuY2FyZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogMCAxLjNyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICZfX2Z1bGwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdkYXJrJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICZfX2Rpc2NvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgJl9fc2F2aW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fb2ZmZXItLWRldGFpbHMge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTAwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDJweCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fb2ZmZXItLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IG1heC1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gX19maWx0ZXJzIHBvc2l0aW9uIGNvbnRyb2xsZWQgYnkgSlMgKHNjcm9sbCkgYW5kIHBvc3NpYmx5IGJlIGFic29sdXRlLlxuICAgICZfX2ZpbHRlcnMge1xuICAgICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJ2xnJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeS1taWQnKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgnbGcnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLWVuZDogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDBzIHBhZGRpbmcgMC4wNXM7IC8vIGRlbGF5IHRoZSByZW1vdmFsIG9mIHRoZSBwYWRkaW5nIHNsaWdodGx5IHRvIHByZXZlbnQgc3VkZGVuICdqb2x0J1xuXG4gICAgICAgICAgICAvLyB3ZSB3YW50IHRoZSAnbW9yZScgYnV0dG9uIHRvICdydW4tb24nIGZyb20gdGhlIGxhc3QgcGFyYWdyYXBoIHRleHQgc28gd2UgbXVzdC4uLlxuICAgICAgICAgICAgLy8gYSkgY2hlY2sgd2hldGhlciB0ZXh0LWFsaWduOmNlbnRlciBoYXMgYmVlbiBhZGRlZCBpbiBhZG1pbiBhbmQgd2hldGhlciB3ZSBoYXZlIGEgc2hvdyBtb3JlIGJ1dHRvbiBhZnRlciBpdC5cbiAgICAgICAgICAgIC8vICAgIElmIHNvLCBtYWtlIHRoZSAqY29udGFpbmVyKiBjZW50ZXItYWxpZ24gdGhlIHRleHRcbiAgICAgICAgICAgICY6aGFzKHA6bGFzdC1vZi10eXBlW3N0eWxlKj0nY2VudGVyJ10gKyAuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBiKSBvbmx5IHVzZSB0aGUgaW5saW5lIHZhbHVlIHdoZW4gdGhlIGJ1dHRvbiBoYXMgbm90IHlldCBiZWVuIGFjdGl2YXRlZFxuICAgICAgICAgICAgcDpsYXN0LW9mLXR5cGU6aGFzKCsgLmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoPiAuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jay1lbmQ6IGNsYW1wKDEuOHJlbSwgM3Z3LCAyLjRyZW0pOyAvLyBhZGQgPHA+LWVxdWl2YWxlbnQgcGFkZGluZyB0byBibG9jayB3aHJuICdtb3JlJyBsaW5rIGlzIHZpc2libGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4tbGlua1tkYXRhLXRvZ2dsZT0nY29sbGFwc2UnXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNzAwO1xuXG4gICAgICAgICAgICAmLmNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJ2xnJykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjdXJyZW50Y29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0xMDAnKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMnJlbSAxcmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS44cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCdsZycpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeScpO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuOHJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuOHJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Y29sb3I7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjI1cyBlYXNlLWluO1xuXG4gICAgICAgIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogY2xhbXAoMS44cmVtLCAzdncsIDIuNHJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmNvbGxhcHNlOm5vdCguaW4pIHtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvbGxhci12YXJpYWJsZS1lbXB0eS1saW5lLWJlZm9yZVxuLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kb3VibGUtc2xhc2gtY29tbWVudC1lbXB0eS1saW5lLWJlZm9yZVxuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vLi4vZGVmYXVsdC9zYXNzL2FzZ2FyZC12YXJpYWJsZXMnIGFzIGFzZ2FyZC12YXJpYWJsZXM7XG5cbi8vIGJvb3RzdHJhcCB2YXJpYWJsZXNcbi8vIGxheW91dFxuJGdyaWQtYnJlYWtwb2ludHM6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRncmlkLWJyZWFrcG9pbnRzLFxuICAgIChcbiAgICAgICAgZGVza3RvcDogMTY1MHB4LFxuICAgICAgICBmdWxsaGQ6IDE5MjBweCxcbiAgICAgICAgMms6IDI1MDBweFxuICAgIClcbik7XG5cbiRjb250YWluZXItbWF4LXdpZHRoczogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGNvbnRhaW5lci1tYXgtd2lkdGhzLFxuICAgIChcbiAgICAgICAgbGc6IDEwMjRweCxcbiAgICAgICAgeGw6IDExNDBweCxcbiAgICAgICAgeHhsOiAxNjg1cHhcbiAgICApXG4pO1xuXG4vLyBzcGFjaW5nXG4kY29udGFpbmVyLXBhZGRpbmcteDogM3JlbTtcbiRjYW52YXMtcGFkZGluZy15OiA0cmVtO1xuJGNhbnZhcy1wYWRkaW5nLXktbWQ6IDZyZW07XG4kY2FudmFzLXBhZGRpbmcteS14eGw6IDdyZW07XG5cbi8vIGZvbnRcbiRmb250LXNpemUtcm9vdDogNjIuNSU7XG4kZm9udC1zaXplLWJhc2U6IDEuNHJlbTtcbiRsaW5lLWhlaWdodC1iYXNlOiAxLjY7XG4kZm9udC1mYW1pbHktYmFzZTogJ0ludGVyJywgJ0ludGVyLWZhbGxiYWNrJywgJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiRmb250LXNpemUtc206IDEuMnJlbTtcbiRmb250LXNpemUtbGc6ICRmb250LXNpemUtYmFzZSAqIDEuMjU7XG4kZm9udC1zaXplLWxhcmdlcjogJGZvbnQtc2l6ZS1iYXNlICogMS41OyAvLyAkaDQtZm9udC1zaXplO1xuJGZvbnQtc2l6ZS1sYXJnZXN0OiAkZm9udC1zaXplLWJhc2UgKiAyOyAvLyAkaDItZm9udC1zaXplO1xuXG4kbGVnZW5kLWZvbnQtc2l6ZTogMnJlbTtcbiRsZWdlbmQtbWFyZ2luLWJvdHRvbTogMnJlbTtcbiRsZWdlbmQtZm9udC13ZWlnaHQ6IDcwMDtcblxuLy8gdHlwb1xuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206IDFlbTtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogNzAwO1xuXG4vLyBjb2xvcnNcbiRwcmltYXJ5OiAjMDA3ZGJhO1xuJHByaW1hcnktZGFyazogIzE0NWM4MDtcbiRwcmltYXJ5LW1pZDogcmdiKDAsIDE0MSwgMjEwLCAwLjE1KTtcbiRwcmltYXJ5LWxpZ2h0OiAjZTZmNGZiO1xuJHNlY29uZGFyeTogI2YwMDtcbiRsaWdodDogI2ZmZjtcbiRkYXJrOiAjMDAwO1xuXG4kZ3JlZW46ICMwNDgxMDE7XG4kZ3JlZW4tZGFyazogIzE4ODAzODtcbiRncmVlbi1zcDogcmdiKDMsIDE4MSwgMCk7XG4kZ3JlZW4tZGFyay1zZW1pLXRyYW5zcDogcmdiKDI0LCAxMjgsIDU2LCAwLjEpO1xuXG4kdGhlbWUtY29sb3JzOiBtYXAubWVyZ2UoXG4gICAgYXNnYXJkLXZhcmlhYmxlcy4kdGhlbWUtY29sb3JzLFxuICAgIChcbiAgICAgICAgcHJpbWFyeTogJHByaW1hcnksXG4gICAgICAgIHByaW1hcnktZGFyazogJHByaW1hcnktZGFyayxcbiAgICAgICAgcHJpbWFyeS1taWQ6ICRwcmltYXJ5LW1pZCxcbiAgICAgICAgcHJpbWFyeS1saWdodDogJHByaW1hcnktbGlnaHQsXG4gICAgICAgIHNlY29uZGFyeTogJHNlY29uZGFyeSxcbiAgICAgICAgbGlnaHQ6ICRsaWdodCxcbiAgICAgICAgZGFyazogJGRhcmssXG4gICAgICAgIGRhcmstc2VtaS10cmFuc3A6IHJnYigwLCAwLCAwLCAwLjEpLFxuICAgICAgICBiYXNlLWJnOiAkbGlnaHQsXG4gICAgICAgIGJhc2UtdGV4dDogJGRhcmssXG4gICAgICAgIGxpbms6ICRwcmltYXJ5LFxuICAgICAgICBzdWNjZXNzOiAjOGVkNjA5LFxuICAgICAgICBzdWNjZXNzLWJnOiAjZThmMWQ5LFxuICAgICAgICBzdWNjZXNzLXRleHQ6ICRkYXJrLFxuICAgICAgICBpbmZvOiAjOWNiNWUxLFxuICAgICAgICBpbmZvLWJnOiAjZGRlZGYzLFxuICAgICAgICBpbmZvLXRleHQ6ICRkYXJrLFxuICAgICAgICB3YXJuaW5nOiAjMjM5YmM4LFxuICAgICAgICB3YXJuaW5nLWJnOiAjOWNiNWUxLFxuICAgICAgICB3YXJuaW5nLXRleHQ6ICRkYXJrLFxuICAgICAgICBkYW5nZXI6ICNlMjY5NjksXG4gICAgICAgIGRhbmdlci1iZzogI2Y2ZGZkZixcbiAgICAgICAgZGFuZ2VyLXRleHQ6ICRkYXJrLFxuICAgICAgICBzdGFyLXJhdGluZy1iZzogI2ZiMCxcbiAgICAgICAgaW4tc3RvY2s6ICRncmVlbixcbiAgICAgICAgb3V0LW9mLXN0b2NrOiAjZTI2OTY5LFxuICAgICAgICBwcmVvcmRlcjogI2VhYjAwMCxcbiAgICAgICAgLy8gMTAlIG9mIGluLXN0b2NrIGNvbG91clxuICAgICAgICBpbi1zdG9jay1iZzogcmdiKDUsIDEzNiwgMiwgMC4xKSxcbiAgICAgICAgZ3JheS0xMDA6ICNmM2YzZjMsXG4gICAgICAgIGdyYXktMTUwOiAjZTRlNGU0LFxuICAgICAgICBncmF5LTIwMDogI2RlZGVkZSxcbiAgICAgICAgZ3JheS0zMDA6ICNkMGQwZDAsXG4gICAgICAgIGdyYXktNDAwOiAjYjFiMWIxLFxuICAgICAgICBncmF5LTYwMDogIzc0NzQ3NCxcbiAgICAgICAgZ3JheS03MDA6ICM0ZDRkNGQsXG4gICAgICAgIGdyYXktODAwOiAjMzgzODM4LFxuICAgICAgICBncmF5LTkwMDogIzI2MjYyNixcbiAgICAgICAgZ3JheS1zZW1pLXRyYW5zcDogcmdiKDIwLCA5MiwgMTI4LCAwLjEpLFxuICAgICAgICBzYXZpbmctY29sb3I6IHJnYigyNCwgMTI4LCA1NiwgMSksXG4gICAgICAgIHNhdmluZy1jb2xvci1iZzogJGdyZWVuLWRhcmstc2VtaS10cmFuc3AsXG4gICAgICAgIHZvdWNoZXItYmc6ICNkOGVkZjcsXG4gICAgICAgIHNhdmluZ3MtcHJpbWFyeTogI2UxMTkzMSxcbiAgICAgICAgc2F2aW5ncy1zZWNvbmRhcnk6ICNmZWU5NTYsXG4gICAgICAgIHVzZWQtb2ZmZXJzLXByaW1hcnk6ICNlYWIwMDAsXG4gICAgICAgIHVzZWQtb2ZmZXJzLXNlY29uZGFyeTogI2ZlZmJmMlxuICAgIClcbik7XG4vLyBib290c3RyYXAgdmFyaWFibGVzIGVuZFxuXG4kbGFiZWwtZ2lmdC1jb2xvcjogIzAwYWVhMztcbiRsYWJlbC11c2VkLXByb2R1Y3QtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgdXNlZC1vZmZlcnMtcHJpbWFyeSk7XG4kbGFiZWwtZ2lmdC1iZy1jb2xvcjogI2U2ZmJmMztcblxuLy8gc2hvcGlvIHZhcmlhYmxlc1xuJGZvbnQtcGF0aDogJy9hc3NldHMvaXNwYWNlLmN6L2ZvbnQnO1xuXG4kaDEtZm9udC1zaXplOiBjbGFtcCgzcmVtLCA2dncsIDRyZW0pOyAvLyAkZm9udC1zaXplLWJhc2UgKiAyLjU7XG4kaDItZm9udC1zaXplOiAzLjZyZW07IC8vIEN1c3RvbSBmb250IHNpemUgYnkgZGVzaWduXG4kaDMtZm9udC1zaXplOiAycmVtOyAvLyAkZm9udC1zaXplLWJhc2UgKiAxLjc1O1xuJGg0LWZvbnQtc2l6ZTogMS44cmVtO1xuJGg1LWZvbnQtc2l6ZTogMS42cmVtO1xuJGg2LWZvbnQtc2l6ZTogMS42cmVtO1xuXG4kZGVmYXVsdC1ib3JkZXItcmFkaXVzOiA4cHg7XG5cbiRidG46IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRidG4sXG4gICAgKFxuICAgICAgICBiZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAncHJpbWFyeScpLFxuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICAgICAgaG92ZXItYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnktZGFyaycpLFxuICAgICAgICBob3Zlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnbGlnaHQnKSxcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1c1xuICAgIClcbik7XG5cbiRidG4tYWx0OiAoXG4gICAgYmctY29sb3I6ICRncmVlbi1kYXJrLFxuICAgIGNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdsaWdodCcpLFxuICAgIGhvdmVyLWJnLWNvbG9yOiAkZ3JlZW4tc3AsXG4gICAgaG92ZXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2xpZ2h0JyksXG4gICAgYm9yZGVyLXJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1c1xuKTtcblxuJGJ0bi1kaXNhYmxlZDogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGJ0bi1kaXNhYmxlZCxcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktMjAwKSxcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2Jhc2UtdGV4dCcpLFxuICAgICAgICBob3Zlci1iZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTIwMCksXG4gICAgICAgIGhvdmVyLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdiYXNlLXRleHQnKVxuICAgIClcbik7XG5cbiRidG4tZGFyazogKFxuICAgIGJnLWNvbG9yOiAkZGFyayxcbiAgICBjb2xvcjogI2ZmZixcbiAgICBob3Zlci1iZy1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCBncmF5LTkwMCksXG4gICAgaG92ZXItY29sb3I6ICNmZmZcbik7XG5cbiRpbnB1dDogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJGlucHV0LFxuICAgIChcbiAgICAgICAgYmctY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2xpZ2h0JyksXG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZ3JheS0yMDAnKSxcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2RhcmsnKSxcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMFxuICAgIClcbik7XG5cbiRjaGVja2JveC1jaGVjazogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsXFxcbiAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcXFxuICAgIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXFxcbiAgICBmaWxsPVwibm9uZVwiXFxcbiAgICBzdHJva2U9XCIje3JnYmEoJGxpZ2h0LCAxKX1cIlxcXG4gICAgc3Ryb2tlLXdpZHRoPVwiM1wiPlxcXG4gICAgPHBvbHlsaW5lIHBvaW50cz1cIjIwIDYgOSAxNyA0IDEyXCI+PC9wb2x5bGluZT5cXFxuICAgIDwvc3ZnPicpO1xuXG4kcGFzc3dvcmQtc2hvdzogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsXFxcbiAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDU3NiA1MTJcIj5cXFxuICAgIDxwYXRoIGQ9XCJNMjg4IDgwYy02NS4yIDAtMTE4LjggMjkuNi0xNTkuOSA2Ny43Qzg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOCAzNjQuM2M0MS4yIDM4LjEgOTQuOCA2Ny43IDE2MCA2Ny43czExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NmMtMTMuNi0zMC00MC4yLTcyLjUtNzguNi0xMDguM0M0MDYuOCAxMDkuNiAzNTMuMiA4MCAyODggODB6TTk1LjQgMTEyLjZDMTQyLjUgNjguOCAyMDcuMiAzMiAyODggMzJzMTQ1LjUgMzYuOCAxOTIuNiA4MC42YzQ2LjggNDMuNSA3OC4xIDk1LjQgOTMgMTMxLjEgMy4zIDcuOSAzLjMgMTYuNyAwIDI0LjYtMTQuOSAzNS43LTQ2LjIgODcuNy05MyAxMzEuMUM0MzMuNSA0NDMuMiAzNjguOCA0ODAgMjg4IDQ4MHMtMTQ1LjUtMzYuOC0xOTIuNi04MC42QzQ4LjYgMzU2IDE3LjMgMzA0IDIuNSAyNjguM2MtMy4zLTcuOS0zLjMtMTYuNyAwLTI0LjZDMTcuMyAyMDggNDguNiAxNTYgOTUuNCAxMTIuNnpNMjg4IDMzNmM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGgtMmMxLjMgNS4xIDIgMTAuNSAyIDE2IDAgMzUuMy0yOC43IDY0LTY0IDY0LTUuNSAwLTEwLjktLjctMTYtMnYyYzAgNDQuMiAzNS44IDgwIDgwIDgwem0wLTIwOGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6XCIvPlxcXG4gICAgPC9zdmc+Jyk7XG5cbiRhbmdsZS1yaWdodDogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsXFxcbiAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMzIwIDUxMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cXFxuICAgIDxwYXRoIGZpbGw9XCIje3JnYmEobWFwLmdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KSwgMC45OTkpfVwiXFxcbiAgICBkPVwiTTI3OC42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyMTAuNyAyNTYgNzMuNCAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwelwiLz5cXFxuICAgIDwvc3ZnPicpO1xuXG4kZGlhZ29uYWwtbGluZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsXFxcbiAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiPlxcXG4gICAgPGxpbmUgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZT1cIiN7cmdiYShtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsIGdyYXktNDAwKSwgMC45OTkpfVwiXFxcbiAgICB4MT1cIjBcIiB5MT1cIjBcIiB4Mj1cIjEwMFwiIHkyPVwiMTAwXCIgdmVjdG9yLWVmZmVjdD1cIm5vbi1zY2FsaW5nLXN0cm9rZVwiLz5cXFxuICAgIDwvc3ZnPicpO1xuXG4kYnJlYWRjcnVtYnM6IG1hcC5tZXJnZShcbiAgICBhc2dhcmQtdmFyaWFibGVzLiRicmVhZGNydW1icyxcbiAgICAoXG4gICAgICAgIGJnLWNvbG9yOiBtYXAuZ2V0KCR0aGVtZS1jb2xvcnMsICdncmF5LTEwMCcpLFxuICAgICAgICBjb2xvcjogbWFwLmdldCgkdGhlbWUtY29sb3JzLCAnZGFyaycpLFxuICAgICAgICBhY3RpdmUtY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ2dyYXktNjAwJylcbiAgICApXG4pO1xuXG4vLyBoZWFkZXJcbiRoZWFkZXItbmF2LWhlaWdodDogNS41cmVtOyAvLyBoZWlnaHQgb24gc21hbGwgc2NyZWVuc1xuJGhlYWRlci1uYXYtZGVza3RvcC1oZWlnaHQ6IDE0LjVyZW07IC8vIGhlaWdodCBvbiBiaWdnZXIgc2NyZWVuc1xuJGhlYWRlci10b3AtbmF2LWRlc2t0b3AtaGVpZ2h0OiAxNC41cmVtOyAvLyBoZWlnaHQgb24gYmlnZ2VyIHNjcmVlbnNcbiRoZWFkZXItbmF2LWJyZWFrcG9pbnQ6ICd4bCc7IC8vIGJyZWFrcG9pbnQgd2hlbiBuYXYgY2hhbmdlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wXG4kaGVhZGVyLXNlYXJjaC1kZXNrdG9wLWhlaWdodDogNXJlbTtcbiRoZWFkZXItc2VhcmNoLWRlc2t0b3Atd2lkdGg6IDEwMCU7XG5cbiRzY3JvbGxiYXItY29sb3I6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnknKTtcblxuLy8gbWVudVxuJG1lbnUtaXRlbS1kZXNrdG9wLXBhZGRpbmc6IDFyZW07XG4kbWVudS1zZWNvbmRhcnktbGlua3MtYmc6IG1hcC5nZXQoJHRoZW1lLWNvbG9ycywgJ3ByaW1hcnktZGFyaycpO1xuJG1lbnUtc3VibWVudS1zaW5nbGUtY29sdW1uLW1pbjogOTtcblxuLy8gZm9vdGVyXG4kZm9vdGVyLWJsb2NrLWNvbGxhcHNlZC1oZWlnaHQ6IDYuNXJlbTtcblxuLy8gdm91Y2hlciBQREZcbi8vIE5PVEU6IGlmIHRoZSBmb250cyB1c2VkIGhlcmUgYXJlIG5vbi1zdGFuZGFyZCwgdGhlbiB0aGV5IG5lZWQgdG8gYmUgdXBsb2FkZWQgYW5kIHNwZWNpZmllZCBzZXBhcmF0ZWx5IGluIHRoZVxuLy8gbVBERiBpbml0aWFsaXphdGlvbiAoc2VlIHVzYWdlIGluIFNEIG9yIHNwZWFrIHdpdGggREIgOikpXG4kdm91Y2hlcjogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJHZvdWNoZXIsXG4gICAgKFxuICAgICAgICBwcmltYXJ5LWJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgICAgIHByaW1hcnktY29sb3I6ICM0NDQsXG4gICAgICAgIHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjZGRkLFxuICAgICAgICBzZWNvbmRhcnktY29sb3I6ICM0NDQsXG4gICAgICAgIGJsb2NrLWhpZ2hsaWdodC1iYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwLFxuICAgICAgICBibG9jay1oaWdobGlnaHQtY29sb3I6ICM0NDQsXG4gICAgICAgIGJhc2UtZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UsXG4gICAgICAgIGJhc2UtbGluZS1oZWlnaHQ6IDEuNSxcbiAgICAgICAgaGVhZGluZy1mb250OiAkZm9udC1mYW1pbHktYmFzZSxcbiAgICAgICAgYm9keS1mb250OiAkZm9udC1mYW1pbHktYmFzZSxcbiAgICAgICAgbG9nby1tYXgtaGVpZ2h0OiAxMG1tXG4gICAgKVxuKTtcblxuLy8gRnVsbC13aWR0aCBzbGlkZXIgaW1hZ2UgZGltZW5zaW9ucyAoYXBwbGllcyB0byBkZXNrdG9wIG9ubHkpXG4vLyBpbWFnZS13aWR0aDogaW1hZ2Ugc2l6ZVxuLy8gaW1hZ2UtY29udGVudC1hcmVhLXdpZHRoOiB3aGVyZSB3ZSBjYW4gc2FmZWx5IGNyb3AgKGZyb20gdGhlIGZ1bGwgc2l6ZSBpbWFnZSlcbiRzbGlkZXItZGVza3RvcDogbWFwLm1lcmdlKFxuICAgIGFzZ2FyZC12YXJpYWJsZXMuJHNsaWRlci1kZXNrdG9wLFxuICAgIChcbiAgICAgICAgaW1hZ2Utd2lkdGg6IDE5MDBweCxcbiAgICAgICAgaW1hZ2UtY29udGVudC1hcmVhLXdpZHRoOiAxMjAwcHhcbiAgICApXG4pO1xuLy8gc2hvcGlvIHZhcmlhYmxlcyBlbmRcblxuLy8gQ1NTIHZhcmlhYmxlc1xuLy8gbW92ZSB0byBhcHAuc2Nzc1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==*/