/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./node_modules/sass-resources-loader/lib/loader.js??ruleSet[1].rules[1].use[4]!./src/Pyz/Yves/ShopUi/Theme/default/styles/print.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Defines the main color of the shop theme. Usage: primary elements' background and color.
 */
/**
 * Defines alternative color of the shop theme. Usage: secondary elements' background and color.
 */
/**
 * Defines white color. Usage: not transparent elements' background of default background.
 */
/**
 * Defines a light shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines a lighter shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the lightest shade color. Usage: elements' background, borders and text.
 */
/**
 * Defines the shade of the black color. Usage: as a base of black color for semi-transparent elements.
 */
/**
 * Defines a dark shade color. Usage: elements' text color variant.
 */
/**
 * Defines a darker shade color. Usage: elements' text color variant.
 */
/**
 * Defines the darkest shade color. Usage: elements' text color variant.
 */
/**
 * Defines a transparent color. Usage: elements' background, border.
 */
/**
 * Defines the main background color. Usage: body and side-drawer background.
 */
/**
 * Defines the main color of text. Usage: default global text color.
 */
/**
 * Defines a default global border color for the input elements.
 */
/**
 * Defines a default global border color for the input elements on focus event.
 */
/**
 * Defines a shadow shade and transparency for the shadowed elements.
 */
/**
 * Defines a default overlay color. Usage: elements with overlay - side-drawer, popups etc.
 */
/**
 * Defines a default image overlay color. Usage: images with overlay - lazy-image.
 */
/**
 * Defines action colors map.
 */
/**
 * Defines font family setting. Usage: body global font styles.
 */
/**
 * Defines font family setting for code. Can be used for code and pre elements.
 */
/**
 * Defines basic font size. Usage: global basic font size.
 */
/**
 * Font size values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Font weight values map. Usage: mixin to set font weight property.
 */
/**
 * Font line height values map. Usage: mixins providing styles for headings, text elements etc.
 */
/**
 * Defines a default duration value for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines a default timing function for the animation effects. Usage: mixins providing animation properties.
 */
/**
 * Defines default z-index value.
 */
/**
 * Defines z-index value for ajax dynamic loader.
 */
/**
 * Defines z-index value for the floating elements.
 */
/**
 * Defines z-index value for the header context.
 */
/**
 * Defines z-index value for the side drawer context.
 */
/**
 * Defines z-index value for the popup.
 */
/**
 * Defines z-index value for the overlay.
 */
/**
 * Defines z-index value for the notification area context.
 */
/**
 * Defines z-index value for the search suggestions context.
 */
/**
 * Defines z-index value for the ajax loader.
 */
/**
 * Defines z-index value for the top navigation context.
 */
/**
 * Defines spacing values map. Usage: spacing helpers and mixins.
 */
/**
 * Defines breakpoints' values for responsive.
 */
/**
 * Defines grid system columns count.
 */
/**
 * Defines grid container max width.
 */
/**
 * Defines gutters' size for grid "with-gutter" modifier.
 */
/**
 * Defines import blacklist. Usage: import helper.
 */
/**
 * Provides list of properies for reset usage.
 */
/**
 * Wrapper function for the darken sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Wrapper function for the lighten sass function with a default degree parameter.
 * @param {Color} $setting-color
 * @param {Number} $degree [10]
 */
/**
 * Sets font-size property from font size settings map - $setting-font-size according to the passed map key.
 * @param {String | Number} $size
 */
/**
 * Sets font-weight property from font weight settings map - $setting-font-weight according to the passed map key.
 * @param {String} $weight
 */
/**
 * Sets line-height property from line-height settings map - $setting-font-line-height according to the passed map key.
 * @param {String | Number} $height
 */
/**
 * Povides transition property configured by the passed parameters.
 * @param {String} $props
 * @param {Number} $duration [$setting-effect-default-duration]
 * @param {String} $ease [$setting-effect-default-ease]
 */
/**
 * Forces element visibility.
 */
/**
 * Forces element invisibility.
 */
/**
 * Provides global class names with spacing properties set from $setting-spacing map.
 * @param {String} $name Main selector name.
 * @param {List} $sides [[]] List of sides to set properties.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Returns column ratio in relation to columns count.
 * @param {Number} $column
 * @param {Number} $columns [$setting-grid-columns]
 * @return {Number}
 */
/**
 * Adds clearing for element with floated child elements.
 */
/**
 * Adds a box-shadow with basic values.
 */
/**
 * Checks parameter on presence in the blacklist of imports setting list.
 * @param {List} $keywords
 * @content Extends mixin with properties if $keywords is not on the blacklist.
 */
.font-italic {
  font-style: italic;
}

.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort mixin instead.
 */
/**
 * @deprecated Use company-page-business-unit-chart-item mixin instead.
 */
/**
 * @deprecated Use company-user-agent-widget-company-user-list mixin instead.
 */
/**
 * @deprecated Use file-manager-widget-file-download-link mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price mixin instead.
 */
/**
 * @deprecated Use price-product-volume-widget-volume-price-table mixin instead.
 */
/**
 * @deprecated Use product-option-widget-shopping-list-product-option-list mixin instead.
 */
/**
 * @deprecated Use product-packaging-unit-widget-packaging-unit-cart mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #0582a8;
  cursor: pointer;
}
.collapsible-list__button:hover {
  text-decoration: underline;
}
.collapsible-list__button::after {
  content: attr(data-show);
}
.collapsible-list__button--shown::after {
  content: attr(data-hide);
}
.collapsible-list__button-content {
  display: none;
}

/* fe-sniffer:disabled correct-scss-component-structure */
/**
 * @deprecated Use shop-ui-quote-status-color mixin instead.
 */
/**
 * @deprecated Use tabs-widget-search-tabs mixin instead.
 */
/**
 * Returns 0 or the first value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Returns null or the last value from the $edges list.
 * @param {List} $edges [$setting-breakpoints] List length must be less than or equal to 2.
 * @return {Base}
 */
/**
 * Sets screen media query with min-width set to $min parameter.
 * @param $min {Number} [0]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed as parameters.
 * @param {Number} $min [0]
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with max-width set to $max parameter.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/**
 * Sets screen media query with breakpoints range passed to parameters or
 * with min-width query if only one parameter is passed.
 * @param {Number} $max [$setting-grid-max-width]
 * @content Extends mixin with properties for media query.
 */
/* stylelint-disable */
/**
 * Forces element visibility.
 */
/**
 * Forces element hidden.
 */
/**
 * Forces element shown.
 */
.print-hidden {
  display: none !important;
}

.print-only {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  display: block !important;
}

.col--sm-1 {
  width: 8.3333333333%;
  min-width: 8.3333333333%;
}
.col--sm-2 {
  width: 16.6666666667%;
  min-width: 16.6666666667%;
}
.col--sm-3 {
  width: 25%;
  min-width: 25%;
}
.col--sm-4 {
  width: 33.3333333333%;
  min-width: 33.3333333333%;
}
.col--sm-5 {
  width: 41.6666666667%;
  min-width: 41.6666666667%;
}
.col--sm-6 {
  width: 50%;
  min-width: 50%;
}
.col--sm-7 {
  width: 58.3333333333%;
  min-width: 58.3333333333%;
}
.col--sm-8 {
  width: 66.6666666667%;
  min-width: 66.6666666667%;
}
.col--sm-9 {
  width: 75%;
  min-width: 75%;
}
.col--sm-10 {
  width: 83.3333333333%;
  min-width: 83.3333333333%;
}
.col--sm-11 {
  width: 91.6666666667%;
  min-width: 91.6666666667%;
}
.col--sm-12 {
  width: 100%;
  min-width: 100%;
}
.col--sm-auto {
  width: auto;
  min-width: 0;
}
.col--md-1 {
  width: 8.3333333333%;
  min-width: 8.3333333333%;
}
.col--md-2 {
  width: 16.6666666667%;
  min-width: 16.6666666667%;
}
.col--md-3 {
  width: 25%;
  min-width: 25%;
}
.col--md-4 {
  width: 33.3333333333%;
  min-width: 33.3333333333%;
}
.col--md-5 {
  width: 41.6666666667%;
  min-width: 41.6666666667%;
}
.col--md-6 {
  width: 50%;
  min-width: 50%;
}
.col--md-7 {
  width: 58.3333333333%;
  min-width: 58.3333333333%;
}
.col--md-8 {
  width: 66.6666666667%;
  min-width: 66.6666666667%;
}
.col--md-9 {
  width: 75%;
  min-width: 75%;
}
.col--md-10 {
  width: 83.3333333333%;
  min-width: 83.3333333333%;
}
.col--md-11 {
  width: 91.6666666667%;
  min-width: 91.6666666667%;
}
.col--md-12 {
  width: 100%;
  min-width: 100%;
}
.col--md-auto {
  width: auto;
  min-width: 0;
}
.col--lg-1 {
  width: 8.3333333333%;
  min-width: 8.3333333333%;
}
.col--lg-2 {
  width: 16.6666666667%;
  min-width: 16.6666666667%;
}
.col--lg-3 {
  width: 25%;
  min-width: 25%;
}
.col--lg-4 {
  width: 33.3333333333%;
  min-width: 33.3333333333%;
}
.col--lg-5 {
  width: 41.6666666667%;
  min-width: 41.6666666667%;
}
.col--lg-6 {
  width: 50%;
  min-width: 50%;
}
.col--lg-7 {
  width: 58.3333333333%;
  min-width: 58.3333333333%;
}
.col--lg-8 {
  width: 66.6666666667%;
  min-width: 66.6666666667%;
}
.col--lg-9 {
  width: 75%;
  min-width: 75%;
}
.col--lg-10 {
  width: 83.3333333333%;
  min-width: 83.3333333333%;
}
.col--lg-11 {
  width: 91.6666666667%;
  min-width: 91.6666666667%;
}
.col--lg-12 {
  width: 100%;
  min-width: 100%;
}
.col--lg-auto {
  width: auto;
  min-width: 0;
}
.col--xl-1 {
  width: 8.3333333333%;
  min-width: 8.3333333333%;
}
.col--xl-2 {
  width: 16.6666666667%;
  min-width: 16.6666666667%;
}
.col--xl-3 {
  width: 25%;
  min-width: 25%;
}
.col--xl-4 {
  width: 33.3333333333%;
  min-width: 33.3333333333%;
}
.col--xl-5 {
  width: 41.6666666667%;
  min-width: 41.6666666667%;
}
.col--xl-6 {
  width: 50%;
  min-width: 50%;
}
.col--xl-7 {
  width: 58.3333333333%;
  min-width: 58.3333333333%;
}
.col--xl-8 {
  width: 66.6666666667%;
  min-width: 66.6666666667%;
}
.col--xl-9 {
  width: 75%;
  min-width: 75%;
}
.col--xl-10 {
  width: 83.3333333333%;
  min-width: 83.3333333333%;
}
.col--xl-11 {
  width: 91.6666666667%;
  min-width: 91.6666666667%;
}
.col--xl-12 {
  width: 100%;
  min-width: 100%;
}
.col--xl-auto {
  width: auto;
  min-width: 0;
}
.col--print-1 {
  width: 8.3333333333%;
  min-width: 8.3333333333%;
}
.col--print-2 {
  width: 16.6666666667%;
  min-width: 16.6666666667%;
}
.col--print-3 {
  width: 25%;
  min-width: 25%;
}
.col--print-4 {
  width: 33.3333333333%;
  min-width: 33.3333333333%;
}
.col--print-5 {
  width: 41.6666666667%;
  min-width: 41.6666666667%;
}
.col--print-6 {
  width: 50%;
  min-width: 50%;
}
.col--print-7 {
  width: 58.3333333333%;
  min-width: 58.3333333333%;
}
.col--print-8 {
  width: 66.6666666667%;
  min-width: 66.6666666667%;
}
.col--print-9 {
  width: 75%;
  min-width: 75%;
}
.col--print-10 {
  width: 83.3333333333%;
  min-width: 83.3333333333%;
}
.col--print-11 {
  width: 91.6666666667%;
  min-width: 91.6666666667%;
}
.col--print-12 {
  width: 100%;
  min-width: 100%;
}
.col--print-auto {
  width: auto;
  min-width: 0;
}

.grid--gap {
  margin-left: -15px;
  margin-right: -15px;
  width: calc(100% + 30px);
}
.grid--gap > .col {
  padding-left: 15px;
  padding-right: 15px;
}
.grid--nowrap-lg-only {
  flex-wrap: nowrap;
}
.grid--column-mob-reverse {
  flex-direction: column;
}

.page-wrapper {
  padding: 0 2.125rem;
}

@page {
  size: auto;
}
html,
body {
  height: auto;
}

a {
  page-break-inside: avoid;
}

img {
  max-width: 100% !important;
  page-break-inside: avoid;
}

h2,
h3 {
  page-break-after: avoid;
}

.print-header {
  /* display: table-header-group !important; */
  /* position: fixed; */
  background: #fff;
  display: flex !important;
  justify-content: space-between;
  max-width: 100%;
  width: 100%;
  top: 0;
  left: 0;
  height: 3.125rem;
  padding-left: 15px;
  padding-right: 15px;
  /* stylelint-disable */
}
@-moz-document url-prefix() {
  .print-header {
    /* stylelint-enable */
    background: transparent;
    page-break-before: always;
  }
}
@-moz-document url-prefix("") {
  .print-header--pdp-first .print-header {
    page-break-before: avoid;
    page-break-after: avoid;
  }
}
.print-header--cart .print-header {
  padding: 0;
}
.print-header__logo {
  height: 3.125rem;
}
.print-header__inner {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.print-header__item {
  display: flex;
}

#product-section--attributes .print-header,
#product-section--details .print-header {
  page-break-after: avoid;
  page-break-before: avoid;
}

/*
!* stylelint-disable *!
// Hide logo on smaller devices in cart on Safari because of collapsing
@media not all and (min-resolution:.001dpcm) {
    @supports (-webkit-appearance:none) {
        @media (max-width: 1200px) {
            .page-layout-main--cart-page__body .print-header__logo {
                display: none;
            }
        }
    }
}
!* stylelint-enable *! */
.logo--print {
  height: 2.5rem;
  width: 7.0625rem;
}

.page-layout {
  width: 100%;
  height: auto;
}
.page-layout .content-wrap {
  padding-top: 0;
  display: table-row-group;
}
.page-layout .teaser-tiles {
  display: none !important;
}

.page-layout-main {
  position: relative;
  display: table-row;
  padding-top: 0;
  padding-bottom: 2.5rem;
  width: 94%;
  height: auto;
}

.product-attributes__list--item,
.product-related__item,
.volume-price-table__title,
.cart-sidebar-item__start,
.cart-summary__wrapper,
.cart-sidebar-item--print {
  background: transparent;
}

/* hidden elements */
.header,
.footer,
.side-drawer,
.account-navigation,
.notification-area,
.shared-cart-add-product-as-separate-item,
.ajax-add-to-cart,
.product-info-bar,
.page-info,
.scroll-to-button,
.scroll-to-button__wrap,
.product-section-nav,
.form--shopping-list,
#product-section--applications,
#product-section--downloads,
#availability_notification_subscription,
#product-section--calculator,
footer-navigation,
header-navigation,
#bn-bar {
  display: none !important;
}

/* PDP */
@-moz-document url-prefix("") {
  .print-container,
  .product-section {
    height: 100vh;
  }
}

.col {
  float: none;
}

#product-section--details {
  display: table;
  width: 100%;
}

#product-section--related,
#product-section--classifications {
  display: table;
  height: 100vh;
  page-break-before: always;
  page-break-after: avoid;
}
@-moz-document url-prefix("") {
  #product-section--related,
  #product-section--classifications {
    page-break-before: avoid;
  }
}

#product-section--attributes {
  height: 100vh;
  page-break-before: always;
  page-break-after: avoid;
}
@-moz-document url-prefix("") {
  #product-section--attributes {
    display: table;
    page-break-before: avoid;
  }
}

.page-info__title {
  padding-top: 0.625rem;
}

.quantity-counter {
  padding-left: 0;
  padding-right: 0;
}
.quantity-counter button {
  display: none !important;
}
.quantity-counter input {
  border: none;
  background: transparent;
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}

.product-detail-gallery__img-wrap {
  margin-top: 1.25rem;
}
.product-detail-gallery__item.item-hidden {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
  max-height: unset;
}
.product-detail-gallery__show-more {
  display: none !important;
}
.product-detail-gallery__desc-wrap {
  display: table-row;
  text-align: left;
}

.product-related {
  width: 100%;
  display: table-row;
}
.product-related__item-actions {
  display: none !important;
}
.product-related__item__wrap {
  width: 50%;
}
.product-related__item {
  display: flex;
}
.product-related__item-data {
  display: block;
}
.product-related__item-prop:last-child {
  padding-left: 0;
}
.product-related__item-content {
  padding: 0 0 0 0.625rem;
  width: 100%;
}

.customizable-attribute-input__input::-moz-placeholder {
  color: #999999;
}

.customizable-attribute-input__input::placeholder {
  color: #999999;
}

.input::-moz-placeholder {
  color: #999999;
}

.input::placeholder {
  color: #999999;
}

/* Cart */
.product-card-item {
  position: relative;
}
.product-card-item__wrapper {
  page-break-inside: avoid;
}
.product-card-item__col * {
  min-width: unset;
}
.product-card-item__col--image {
  max-width: 12%;
  width: 12%;
  min-width: unset;
  margin: 0;
  padding: 0 0.9375rem 0 0;
  height: auto;
}
.product-card-item__col--image .product-item-image {
  padding: 0;
}
.product-card-item__col--image .product-item-image__item {
  width: 100%;
  padding: 0;
  height: auto;
  margin: 0;
}
.product-card-item__col--image .product-item-image__item img {
  margin: 0;
  width: 100%;
  position: relative;
}
.product-card-item__col--description {
  padding: 0;
  width: 88%;
  max-width: 88%;
  min-width: unset;
}
.bundle-items .product-card-item__col--description {
  padding: 0;
}
.product-card-item__col--total {
  width: 60%;
  max-width: 60%;
  float: right;
  margin-right: 0;
  margin-left: auto;
}
.product-card-item__col--content {
  width: 100%;
  max-width: 100%;
}
.product-card-item__col--title {
  width: 40%;
  max-width: 40%;
}
.product-card-item__col--actions {
  display: none !important;
}
.product-card-item__col .mobile-order-1,
.product-card-item__col .mobile-order-2,
.product-card-item__col .mobile-order-3 {
  order: unset;
}
.product-card-item__title {
  font-size: 1.25rem;
  line-height: 1.1;
}
.product-card-item__price-block {
  width: 33.33%;
  max-width: 33.33%;
  margin-bottom: 0.9375rem;
  padding: 0 0 0 0.625rem;
}
.product-card-item__price-block * {
  padding: 0;
  margin: 0;
  border: none;
  font-size: 1.125rem;
}
.product-card-item__quantity-holder {
  padding: 0;
}
.product-card-item__total .money-price__amount {
  font-size: inherit;
  line-height: inherit;
}
.product-card-item__subtotal {
  text-align: left;
}
.product-card-item__subtotal .money-price {
  margin: 0 auto;
}
.product-card-item__actions-block {
  padding: 0;
}
.product-card-item .bundle-items {
  margin-bottom: 0;
}
.product-card-item .bundle-items__quantity {
  padding: 0;
}

.cart-sidebar-item:not(.cart-sidebar-item--print) {
  display: none !important;
}

.cart-sidebar-item--print {
  page-break-before: always;
  page-break-after: avoid;
}

body {
  /* display: table-row-group; */
  width: 100%;
  table-layout: fixed;
  padding: 0;
}
body > *:not(.page-layout) {
  display: none;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jc3MveXZlc19kZWZhdWx0LnByaW50LmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNsREE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUNYQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ3VCQTtFQUNJO0FDeU1KOztBQTFKUTtFQUNJO0VBQ0E7QUE2Slo7O0FBMUlBOztFQUFBO0FBc0tBOztFQUFBO0FBNENBOztFQUFBO0FBeUZBOztFQUFBO0FBbURBOztFQUFBO0FBeUNBOztFQUFBO0FBbUxBOztFQUFBO0FBNEJBOztFQUFBO0FBNkJBOztFQUFBO0FBZ21DUTtFQUNJLHdDQzN5RGdCO0VENHlEaEIsY0NqekRTO0VEa3pEVDtBQTNpRFo7QUE2aURZO0VBQ0k7QUEzaURoQjtBQThpRFk7RUFDSTtBQTVpRGhCO0FBZ2pEZ0I7RUFDSTtBQTlpRHBCO0FBbWpEUTtFQUNJO0FBampEWjs7QUFxeUVBO0FBaUNBOztFQUFBO0FBMG9CQTs7RUFBQTtBRW51R0E7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBU0E7Ozs7O0VBQUE7QUFVQTs7OztFQUFBO0FBU0E7Ozs7O0VBQUE7QUN0REE7QUNBQTs7RUFBQTtBQVVBOztFQUFBO0FBUUE7O0VBQUE7QUFlQTtFQWxCSTtBSnlUSjs7QUluU0E7RUFoQ0k7RUFDQTtFQUNBO0VBa0JBO0FKc1RKOztBR3JVb0I7RUFDSTtFQUNBO0FId1V4QjtBRzFVb0I7RUFDSTtFQUNBO0FINFV4QjtBRzlVb0I7RUFDSTtFQUNBO0FIZ1Z4QjtBR2xWb0I7RUFDSTtFQUNBO0FIb1Z4QjtBR3RWb0I7RUFDSTtFQUNBO0FId1Z4QjtBRzFWb0I7RUFDSTtFQUNBO0FINFZ4QjtBRzlWb0I7RUFDSTtFQUNBO0FIZ1d4QjtBR2xXb0I7RUFDSTtFQUNBO0FIb1d4QjtBR3RXb0I7RUFDSTtFQUNBO0FId1d4QjtBRzFXb0I7RUFDSTtFQUNBO0FINFd4QjtBRzlXb0I7RUFDSTtFQUNBO0FIZ1h4QjtBR2xYb0I7RUFDSTtFQUNBO0FIb1h4QjtBR2hYZ0I7RUFDSTtFQUNBO0FIa1hwQjtBRzFYb0I7RUFDSTtFQUNBO0FINFh4QjtBRzlYb0I7RUFDSTtFQUNBO0FIZ1l4QjtBR2xZb0I7RUFDSTtFQUNBO0FIb1l4QjtBR3RZb0I7RUFDSTtFQUNBO0FId1l4QjtBRzFZb0I7RUFDSTtFQUNBO0FINFl4QjtBRzlZb0I7RUFDSTtFQUNBO0FIZ1p4QjtBR2xab0I7RUFDSTtFQUNBO0FIb1p4QjtBR3Rab0I7RUFDSTtFQUNBO0FId1p4QjtBRzFab0I7RUFDSTtFQUNBO0FINFp4QjtBRzlab0I7RUFDSTtFQUNBO0FIZ2F4QjtBR2xhb0I7RUFDSTtFQUNBO0FIb2F4QjtBR3Rhb0I7RUFDSTtFQUNBO0FId2F4QjtBR3BhZ0I7RUFDSTtFQUNBO0FIc2FwQjtBRzlhb0I7RUFDSTtFQUNBO0FIZ2J4QjtBR2xib0I7RUFDSTtFQUNBO0FIb2J4QjtBR3Rib0I7RUFDSTtFQUNBO0FId2J4QjtBRzFib0I7RUFDSTtFQUNBO0FINGJ4QjtBRzlib0I7RUFDSTtFQUNBO0FIZ2N4QjtBR2xjb0I7RUFDSTtFQUNBO0FIb2N4QjtBR3Rjb0I7RUFDSTtFQUNBO0FId2N4QjtBRzFjb0I7RUFDSTtFQUNBO0FINGN4QjtBRzljb0I7RUFDSTtFQUNBO0FIZ2R4QjtBR2xkb0I7RUFDSTtFQUNBO0FIb2R4QjtBR3Rkb0I7RUFDSTtFQUNBO0FId2R4QjtBRzFkb0I7RUFDSTtFQUNBO0FINGR4QjtBR3hkZ0I7RUFDSTtFQUNBO0FIMGRwQjtBR2xlb0I7RUFDSTtFQUNBO0FIb2V4QjtBR3Rlb0I7RUFDSTtFQUNBO0FId2V4QjtBRzFlb0I7RUFDSTtFQUNBO0FINGV4QjtBRzllb0I7RUFDSTtFQUNBO0FIZ2Z4QjtBR2xmb0I7RUFDSTtFQUNBO0FIb2Z4QjtBR3Rmb0I7RUFDSTtFQUNBO0FId2Z4QjtBRzFmb0I7RUFDSTtFQUNBO0FINGZ4QjtBRzlmb0I7RUFDSTtFQUNBO0FIZ2dCeEI7QUdsZ0JvQjtFQUNJO0VBQ0E7QUhvZ0J4QjtBR3RnQm9CO0VBQ0k7RUFDQTtBSHdnQnhCO0FHMWdCb0I7RUFDSTtFQUNBO0FINGdCeEI7QUc5Z0JvQjtFQUNJO0VBQ0E7QUhnaEJ4QjtBRzVnQmdCO0VBQ0k7RUFDQTtBSDhnQnBCO0FHdGhCb0I7RUFDSTtFQUNBO0FId2hCeEI7QUcxaEJvQjtFQUNJO0VBQ0E7QUg0aEJ4QjtBRzloQm9CO0VBQ0k7RUFDQTtBSGdpQnhCO0FHbGlCb0I7RUFDSTtFQUNBO0FIb2lCeEI7QUd0aUJvQjtFQUNJO0VBQ0E7QUh3aUJ4QjtBRzFpQm9CO0VBQ0k7RUFDQTtBSDRpQnhCO0FHOWlCb0I7RUFDSTtFQUNBO0FIZ2pCeEI7QUdsakJvQjtFQUNJO0VBQ0E7QUhvakJ4QjtBR3RqQm9CO0VBQ0k7RUFDQTtBSHdqQnhCO0FHMWpCb0I7RUFDSTtFQUNBO0FINGpCeEI7QUc5akJvQjtFQUNJO0VBQ0E7QUhna0J4QjtBR2xrQm9CO0VBQ0k7RUFDQTtBSG9rQnhCO0FHaGtCZ0I7RUFDSTtFQUNBO0FIa2tCcEI7O0FHM2pCUTtFQUVRO0VBQ0E7RUFDQTtBSDZqQmhCO0FHMWpCWTtFQUVRLGtCRWpDQztFRmtDRCxtQkVsQ0M7QUw2bEJyQjtBR3RqQlE7RUFFUTtBSHVqQmhCO0FHbmpCUTtFQUVRO0FIb2pCaEI7O0FHL2lCSTtFQUVRO0FIaWpCWjs7QU14bUJBO0VBQ0k7QU4ybUJKO0FNeG1CQTs7RUFFSTtBTjBtQko7O0FNdm1CQTtFQUNJO0FOMG1CSjs7QU12bUJBO0VBQ0k7RUFDQTtBTjBtQko7O0FNdm1CQTs7RUFFSTtBTjBtQko7O0FNdm1CQTtFQUNJO0VBRUE7RUFDQSxnQkx4QmtCO0VLeUJsQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQkMxQm9CO0VEMkJwQixrQkRsQ2lCO0VDbUNqQixtQkRuQ2lCO0VDcUNqQjtBTndtQko7QU12bUJJO0VBaEJKO0lBaUJJO0lBQ0k7SUFDQTtFTjBtQk47QUFDRjtBTXZtQlE7RUFESjtJQUVRO0lBQ0E7RU4wbUJWO0FBQ0Y7QU12bUJJO0VBQ0k7QU55bUJSO0FNdG1CSTtFQUNJLGdCQ2pEZ0I7QVB5cEJ4QjtBTXJtQkk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBTnVtQlI7QU1wbUJJO0VBQ0k7QU5zbUJSOztBTWxtQkE7O0VBRUk7RUFDQTtBTnFtQko7O0FNbG1CQTs7Ozs7Ozs7Ozs7O3dCQUFBO0FBY0E7RUFDSTtFQUNBO0FOb21CSjs7QU1qbUJBO0VBQ0k7RUFDQTtBTm9tQko7QU1sbUJJO0VBQ0k7RUFDQTtBTm9tQlI7QU1qbUJJO0VGM0ZBO0FKK3JCSjs7QU0vbEJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FOa21CSjs7QU0vbEJBOzs7Ozs7RUFNSTtBTmttQko7O0FNL2xCQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFRm5ISTtBSnl1Qko7O0FNL2xCQTtBQUlJO0VBRko7O0lBR1E7RU5pbUJOO0FBQ0Y7O0FNOWxCQTtFQUNJO0FOaW1CSjs7QU05bEJBO0VBQ0k7RUFDQTtBTmltQko7O0FNOWxCQTs7RUFFSTtFQUNBO0VBQ0E7RUFDQTtBTmltQko7QU0vbEJJO0VBUEo7O0lBUVE7RU5tbUJOO0FBQ0Y7O0FNaG1CQTtFQUNJO0VBQ0E7RUFDQTtBTm1tQko7QU1qbUJJO0VBTEo7SUFNUTtJQUNBO0VOb21CTjtBQUNGOztBTWptQkE7RUFDSTtBTm9tQko7O0FNam1CQTtFQUNJO0VBQ0E7QU5vbUJKO0FNbG1CSTtFRjNMQTtBSmd5Qko7QU1qbUJJO0VBQ0k7RUFDQTtFRjNNSjtFQUNBO0VBQ0E7QUoreUJKOztBTTlsQkk7RUFDSTtBTmltQlI7QU03bEJRO0VGeE5KO0VBQ0E7RUFDQTtFRXdOUTtBTmltQlo7QU03bEJJO0VGcE5BO0FKb3pCSjtBTTVsQkk7RUFDSTtFQUNBO0FOOGxCUjs7QU0xbEJBO0VBQ0k7RUFDQTtBTjZsQko7QU0zbEJJO0VGbE9BO0FKZzBCSjtBTTFsQkk7RUFDSTtBTjRsQlI7QU16bEJJO0VBQ0k7QU4ybEJSO0FNeGxCSTtFQUNJO0FOMGxCUjtBTXZsQkk7RUFDSTtBTnlsQlI7QU10bEJJO0VBQ0k7RUFDQTtBTndsQlI7O0FNbmxCSTtFRjlPQSxjSHRCbUI7QUQyMUJ2Qjs7QU12bEJJO0VGOU9BLGNIdEJtQjtBRDIxQnZCOztBTWpsQkk7RUZwUEEsY0h0Qm1CO0FEKzFCdkI7O0FNcmxCSTtFRnBQQSxjSHRCbUI7QUQrMUJ2Qjs7QU1obEJBO0FBQ0E7RUFDSTtBTm1sQko7QU1qbEJJO0VBQ0k7QU5tbEJSO0FNL2tCUTtFQUNJO0FOaWxCWjtBTTlrQlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QU5nbEJaO0FNOWtCWTtFQUNJO0FOZ2xCaEI7QU05a0JnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FOZ2xCcEI7QU05a0JvQjtFQUNJO0VBQ0E7RUFDQTtBTmdsQnhCO0FNMWtCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FONGtCWjtBTTFrQlk7RUFDSTtBTjRrQmhCO0FNeGtCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QU4wa0JaO0FNdmtCUTtFQUNJO0VBQ0E7QU55a0JaO0FNdGtCUTtFQUNJO0VBQ0E7QU53a0JaO0FNcmtCUTtFRjVVSjtBSm81Qko7QU1wa0JROzs7RUFHSTtBTnNrQlo7QU1sa0JJO0VBQ0k7RUFDQTtBTm9rQlI7QU1qa0JJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QU5ta0JSO0FNamtCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FObWtCWjtBTS9qQkk7RUFDSTtBTmlrQlI7QU03akJRO0VBQ0k7RUFDQTtBTitqQlo7QU0zakJJO0VBQ0k7QU42akJSO0FNM2pCUTtFQUNJO0FONmpCWjtBTXpqQkk7RUFDSTtBTjJqQlI7QU14akJJO0VBQ0k7QU4wakJSO0FNeGpCUTtFQUNJO0FOMGpCWjs7QU1yakJBO0VGMVlJO0FKbThCSjs7QU1yakJBO0VBQ0k7RUFDQTtBTndqQko7O0FNcmpCQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FOd2pCSjtBTXRqQkk7RUFDSTtBTndqQlIsQyIsInNvdXJjZXMiOlsid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fZm9udC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2VmZmVjdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX3otaW5kZXguc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fYnJlYWtwb2ludC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19pbXBvcnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX3Jlc2V0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19jb2xvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fZm9udC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fZWZmZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL192aXNpYmlsaXR5LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19icmVha3BvaW50LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL191aS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9faW1wb3J0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fZm9udC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvcHJpbnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19jb2xvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvcHJpbnQvX3ByaW50LWJyZWFrcG9pbnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYi1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3ByaW50L19wcmludC1ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9wcmludC9fcHJpbnQtaGVscGVyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmItZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fZ3JpZC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvcHJpbnQvX3ByaW50LXN0eWxlcy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJiLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvcHJpbnQvX3ByaW50LXNldHRpbmdzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZpbmVzIHRoZSBtYWluIGNvbG9yIG9mIHRoZSBzaG9wIHRoZW1lLiBVc2FnZTogcHJpbWFyeSBlbGVtZW50cycgYmFja2dyb3VuZCBhbmQgY29sb3IuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLW1haW46ICMyMTk5ZTggIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhbHRlcm5hdGl2ZSBjb2xvciBvZiB0aGUgc2hvcCB0aGVtZS4gVXNhZ2U6IHNlY29uZGFyeSBlbGVtZW50cycgYmFja2dyb3VuZCBhbmQgY29sb3IuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWFsdDogI2UyNjk0YSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHdoaXRlIGNvbG9yLiBVc2FnZTogbm90IHRyYW5zcGFyZW50IGVsZW1lbnRzJyBiYWNrZ3JvdW5kIG9mIGRlZmF1bHQgYmFja2dyb3VuZC5cbiAqL1xuJHNldHRpbmctY29sb3Itd2hpdGU6ICNmZmZmZmYgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGxpZ2h0IHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIGJhY2tncm91bmQsIGJvcmRlcnMgYW5kIHRleHQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWxpZ2h0OiAjZGFkYWRhICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBsaWdodGVyIHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIGJhY2tncm91bmQsIGJvcmRlcnMgYW5kIHRleHQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI6ICNmMGYwZjAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgbGlnaHRlc3Qgc2hhZGUgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgYmFja2dyb3VuZCwgYm9yZGVycyBhbmQgdGV4dC5cbiAqL1xuJHNldHRpbmctY29sb3ItbGlnaHRlc3Q6ICNmNGY0ZjQgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgc2hhZGUgb2YgdGhlIGJsYWNrIGNvbG9yLiBVc2FnZTogYXMgYSBiYXNlIG9mIGJsYWNrIGNvbG9yIGZvciBzZW1pLXRyYW5zcGFyZW50IGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy1jb2xvci1ibGFjazogIzAwMDAwMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgZGFyayBzaGFkZSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyB0ZXh0IGNvbG9yIHZhcmlhbnQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWRhcms6ICNiYmJiYmIgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRhcmtlciBzaGFkZSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyB0ZXh0IGNvbG9yIHZhcmlhbnQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWRhcmtlcjogIzc3Nzc3NyAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkYXJrZXN0IHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIHRleHQgY29sb3IgdmFyaWFudC5cbiAqL1xuJHNldHRpbmctY29sb3ItZGFya2VzdDogIzMzMzMzMyAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgdHJhbnNwYXJlbnQgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgYmFja2dyb3VuZCwgYm9yZGVyLlxuICovXG4kc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDogcmdiYSgkc2V0dGluZy1jb2xvci13aGl0ZSwgMCkgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgbWFpbiBiYWNrZ3JvdW5kIGNvbG9yLiBVc2FnZTogYm9keSBhbmQgc2lkZS1kcmF3ZXIgYmFja2dyb3VuZC5cbiAqL1xuJHNldHRpbmctY29sb3ItYmc6ICRzZXR0aW5nLWNvbG9yLXdoaXRlICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgdGhlIG1haW4gY29sb3Igb2YgdGV4dC4gVXNhZ2U6IGRlZmF1bHQgZ2xvYmFsIHRleHQgY29sb3IuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLXRleHQ6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3QgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRlZmF1bHQgZ2xvYmFsIGJvcmRlciBjb2xvciBmb3IgdGhlIGlucHV0IGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IGdsb2JhbCBib3JkZXIgY29sb3IgZm9yIHRoZSBpbnB1dCBlbGVtZW50cyBvbiBmb2N1cyBldmVudC5cbiAqL1xuJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzOiAkc2V0dGluZy1jb2xvci1kYXJrICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBzaGFkb3cgc2hhZGUgYW5kIHRyYW5zcGFyZW5jeSBmb3IgdGhlIHNoYWRvd2VkIGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy1jb2xvci1zaGFkb3c6IHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRlZmF1bHQgb3ZlcmxheSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzIHdpdGggb3ZlcmxheSAtIHNpZGUtZHJhd2VyLCBwb3B1cHMgZXRjLlxuICovXG4kc2V0dGluZy1jb2xvci1vdmVybGF5OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjMpICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IGltYWdlIG92ZXJsYXkgY29sb3IuIFVzYWdlOiBpbWFnZXMgd2l0aCBvdmVybGF5IC0gbGF6eS1pbWFnZS5cbiAqL1xuJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTogcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC4wNSkgIWRlZmF1bHQ7XG5cbiRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU6ICNlYWYxZmE7XG5cbiRzZXR0aW5nLWNvbG9yLWJsdWU6ICMwMDY0YjQ7XG5cbi8qKlxuICogRGVmaW5lcyBhY3Rpb24gY29sb3JzIG1hcC5cbiAqL1xuJHNldHRpbmctY29sb3ItYWN0aW9uczogKFxuICAgIHN1Y2Nlc3M6ICM0ZmMyYTAsXG4gICAgd2FybmluZzogI2YyOTEzMyxcbiAgICBhbGVydDogI2IyMTcxYSxcbikgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgZm9udCBmYW1pbHkgc2V0dGluZy4gVXNhZ2U6IGJvZHkgZ2xvYmFsIGZvbnQgc3R5bGVzLlxuICovXG4kc2V0dGluZy1mb250LWZhbWlseTogJ0FyaWFsJywgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGZvbnQgZmFtaWx5IHNldHRpbmcgZm9yIGNvZGUuIENhbiBiZSB1c2VkIGZvciBjb2RlIGFuZCBwcmUgZWxlbWVudHMuXG4gKi9cbiRzZXR0aW5nLWZvbnQtZmFtaWx5LWNvZGU6ICdNZW5sbycsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGJhc2ljIGZvbnQgc2l6ZS4gVXNhZ2U6IGdsb2JhbCBiYXNpYyBmb250IHNpemUuXG4gKi9cbiRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vKipcbiAqIEZvbnQgc2l6ZSB2YWx1ZXMgbWFwLiBVc2FnZTogbWl4aW5zIHByb3ZpZGluZyBzdHlsZXMgZm9yIGhlYWRpbmdzLCB0ZXh0IGVsZW1lbnRzIGV0Yy5cbiAqL1xuJHNldHRpbmctZm9udC1zaXplOiAoXG4gICAgMTogMzhweCxcbiAgICAyOiAzNHB4LFxuICAgIDM6IDMwcHgsXG4gICAgNDogMjZweCxcbiAgICA1OiAyMnB4LFxuICAgIDY6IDE4cHgsXG4gICAgYmlnOiAxNnB4LFxuICAgIGRlZmF1bHQ6IDE0cHgsXG4gICAgc21hbGw6IDEycHgsXG4pICFkZWZhdWx0O1xuXG4vKipcbiAqIEZvbnQgd2VpZ2h0IHZhbHVlcyBtYXAuIFVzYWdlOiBtaXhpbiB0byBzZXQgZm9udCB3ZWlnaHQgcHJvcGVydHkuXG4gKi9cbiRzZXR0aW5nLWZvbnQtd2VpZ2h0OiAoXG4gICAgbGlnaHQ6IDMwMCxcbiAgICByZWd1bGFyOiA0MDAsXG4gICAgYm9sZDogOTAwLFxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBGb250IGxpbmUgaGVpZ2h0IHZhbHVlcyBtYXAuIFVzYWdlOiBtaXhpbnMgcHJvdmlkaW5nIHN0eWxlcyBmb3IgaGVhZGluZ3MsIHRleHQgZWxlbWVudHMgZXRjLlxuICovXG4kc2V0dGluZy1mb250LWxpbmUtaGVpZ2h0OiAoXG4gICAgMTogMS4xLFxuICAgIDI6IDEuMixcbiAgICAzOiAxLjQsXG4gICAgNDogMS40LFxuICAgIDU6IDEuNCxcbiAgICA2OiAxLjQsXG4gICAgZGVmYXVsdDogMS41LFxuICAgIHRpZ2h0OiAxLjEsXG4pICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBEZWZpbmVzIGEgZGVmYXVsdCBkdXJhdGlvbiB2YWx1ZSBmb3IgdGhlIGFuaW1hdGlvbiBlZmZlY3RzLiBVc2FnZTogbWl4aW5zIHByb3ZpZGluZyBhbmltYXRpb24gcHJvcGVydGllcy5cbiAqL1xuJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZHVyYXRpb246IDI1MG1zICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IHRpbWluZyBmdW5jdGlvbiBmb3IgdGhlIGFuaW1hdGlvbiBlZmZlY3RzLiBVc2FnZTogbWl4aW5zIHByb3ZpZGluZyBhbmltYXRpb24gcHJvcGVydGllcy5cbiAqL1xuJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZWFzZTogZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgZGVmYXVsdCB6LWluZGV4IHZhbHVlLlxuICovXG4kc2V0dGluZy16aS1lbGVtZW50OiAxICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgYWpheCBkeW5hbWljIGxvYWRlci5cbiAqL1xuJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjogMzAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIGZsb2F0aW5nIGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nOiAzNTAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgaGVhZGVyIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLWhlYWRlcjogNDAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIHNpZGUgZHJhd2VyIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLXNpZGUtZHJhd2VyOiA1MDAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgcG9wdXAuXG4gKi9cbiRzZXR0aW5nLXppLXBvcHVwOiA1NTAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgb3ZlcmxheS5cbiAqL1xuJHNldHRpbmctemktb3ZlcmxheTogNTUwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBhcmVhIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhOiA2MDAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB6LWluZGV4IHZhbHVlIGZvciB0aGUgc2VhcmNoIHN1Z2dlc3Rpb25zIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9uczogNzAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIGFqYXggbG9hZGVyLlxuICovXG4kc2V0dGluZy16aS1hamF4LWxvYWRlcjogNzUwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIHRvcCBuYXZpZ2F0aW9uIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wOiA4MDAgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgc3BhY2luZyB2YWx1ZXMgbWFwLiBVc2FnZTogc3BhY2luZyBoZWxwZXJzIGFuZCBtaXhpbnMuXG4gKi9cbiRzZXR0aW5nLXNwYWNpbmc6IChcbiAgICBiaWc6IDFyZW0sXG4gICAgZGVmYXVsdDogMC41cmVtLFxuICAgIHNtYWxsOiAwLjI1cmVtLFxuICAgIHJlc2V0OiAwLFxuKSAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBicmVha3BvaW50cycgdmFsdWVzIGZvciByZXNwb25zaXZlLlxuICovXG4kc2V0dGluZy1icmVha3BvaW50czogKFxuICAgIHNtOiAoXG4gICAgICAgIDAsXG4gICAgICAgIDU0OXB4LFxuICAgICksXG4gICAgbWQ6IChcbiAgICAgICAgNTUwcHgsXG4gICAgICAgIDc2OXB4LFxuICAgICksXG4gICAgbGc6IChcbiAgICAgICAgNzcwcHgsXG4gICAgICAgIDk2OXB4LFxuICAgICksXG4gICAgeGw6IChcbiAgICAgICAgOTcwcHgsXG4gICAgKSxcbikgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgZ3JpZCBzeXN0ZW0gY29sdW1ucyBjb3VudC5cbiAqL1xuJHNldHRpbmctZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGdyaWQgY29udGFpbmVyIG1heCB3aWR0aC5cbiAqL1xuJHNldHRpbmctZ3JpZC1tYXgtd2lkdGg6IDExNjBweCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGd1dHRlcnMnIHNpemUgZm9yIGdyaWQgXCJ3aXRoLWd1dHRlclwiIG1vZGlmaWVyLlxuICovXG4kc2V0dGluZy1ncmlkLWd1dHRlcjogMCAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBpbXBvcnQgYmxhY2tsaXN0LiBVc2FnZTogaW1wb3J0IGhlbHBlci5cbiAqL1xuJHNldHRpbmctaW1wb3J0LWJsYWNrbGlzdDogKCk7XG4iLCIvKipcbiAqIFByb3ZpZGVzIGxpc3Qgb2YgcHJvcGVyaWVzIGZvciByZXNldCB1c2FnZS5cbiAqL1xuQG1peGluIGhlbHBlci1yZXNldCB7XG4gICAgLy8gaHR0cHM6Ly93d3cucGF1bGlyaXNoLmNvbS8yMDEyL2JveC1zaXppbmctYm9yZGVyLWJveC1mdHcvXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3Itd2hpdGUsIDApO1xuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFdyYXBwZXIgZnVuY3Rpb24gZm9yIHRoZSBkYXJrZW4gc2FzcyBmdW5jdGlvbiB3aXRoIGEgZGVmYXVsdCBkZWdyZWUgcGFyYW1ldGVyLlxuICogQHBhcmFtIHtDb2xvcn0gJHNldHRpbmctY29sb3JcbiAqIEBwYXJhbSB7TnVtYmVyfSAkZGVncmVlIFsxMF1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlOiAxMCkge1xuICAgIEByZXR1cm4gZGFya2VuKCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlKTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZ1bmN0aW9uIGZvciB0aGUgbGlnaHRlbiBzYXNzIGZ1bmN0aW9uIHdpdGggYSBkZWZhdWx0IGRlZ3JlZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0ge0NvbG9yfSAkc2V0dGluZy1jb2xvclxuICogQHBhcmFtIHtOdW1iZXJ9ICRkZWdyZWUgWzEwXVxuICovXG5AZnVuY3Rpb24gaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlOiAzNSkge1xuICAgIEByZXR1cm4gbGlnaHRlbigkc2V0dGluZy1jb2xvciwgJGRlZ3JlZSk7XG59XG4iLCIvKipcbiAqIFNldHMgZm9udC1zaXplIHByb3BlcnR5IGZyb20gZm9udCBzaXplIHNldHRpbmdzIG1hcCAtICRzZXR0aW5nLWZvbnQtc2l6ZSBhY2NvcmRpbmcgdG8gdGhlIHBhc3NlZCBtYXAga2V5LlxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICRzaXplXG4gKi9cbkBtaXhpbiBoZWxwZXItZm9udC1zaXplKCRzaXplKSB7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJHNpemUpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogU2V0cyBmb250LXdlaWdodCBwcm9wZXJ0eSBmcm9tIGZvbnQgd2VpZ2h0IHNldHRpbmdzIG1hcCAtICRzZXR0aW5nLWZvbnQtd2VpZ2h0IGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG1hcCBrZXkuXG4gKiBAcGFyYW0ge1N0cmluZ30gJHdlaWdodFxuICovXG5AbWl4aW4gaGVscGVyLWZvbnQtd2VpZ2h0KCR3ZWlnaHQpIHtcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkc2V0dGluZy1mb250LXdlaWdodCwgJHdlaWdodCk7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBTZXRzIGxpbmUtaGVpZ2h0IHByb3BlcnR5IGZyb20gbGluZS1oZWlnaHQgc2V0dGluZ3MgbWFwIC0gJHNldHRpbmctZm9udC1saW5lLWhlaWdodCBhY2NvcmRpbmcgdG8gdGhlIHBhc3NlZCBtYXAga2V5LlxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICRoZWlnaHRcbiAqL1xuQG1peGluIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRoZWlnaHQpIHtcbiAgICBsaW5lLWhlaWdodDogbWFwLWdldCgkc2V0dGluZy1mb250LWxpbmUtaGVpZ2h0LCAkaGVpZ2h0KTtcblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBQb3ZpZGVzIHRyYW5zaXRpb24gcHJvcGVydHkgY29uZmlndXJlZCBieSB0aGUgcGFzc2VkIHBhcmFtZXRlcnMuXG4gKiBAcGFyYW0ge1N0cmluZ30gJHByb3BzXG4gKiBAcGFyYW0ge051bWJlcn0gJGR1cmF0aW9uIFskc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1kdXJhdGlvbl1cbiAqIEBwYXJhbSB7U3RyaW5nfSAkZWFzZSBbJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZWFzZV1cbiAqL1xuQG1peGluIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihcbiAgICAkcHJvcHM6IG9wYWNpdHkgdmlzaWJpbGl0eSxcbiAgICAkZHVyYXRpb246ICRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWR1cmF0aW9uLFxuICAgICRlYXNlOiAkc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1lYXNlXG4pIHtcbiAgICAkdHJhbnNpdGlvbjogbnVsbDtcblxuICAgIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgICAgICR0cmFuc2l0aW9uOiAkcHJvcCAkZHVyYXRpb24gJGVhc2UsICR0cmFuc2l0aW9uO1xuICAgIH1cbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBGb3JjZXMgZWxlbWVudCB2aXNpYmlsaXR5LlxuICovXG5AbWl4aW4gaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBGb3JjZXMgZWxlbWVudCBpbnZpc2liaWxpdHkuXG4gKi9cbkBtaXhpbiBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFByb3ZpZGVzIGdsb2JhbCBjbGFzcyBuYW1lcyB3aXRoIHNwYWNpbmcgcHJvcGVydGllcyBzZXQgZnJvbSAkc2V0dGluZy1zcGFjaW5nIG1hcC5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSBNYWluIHNlbGVjdG9yIG5hbWUuXG4gKiBAcGFyYW0ge0xpc3R9ICRzaWRlcyBbW11dIExpc3Qgb2Ygc2lkZXMgdG8gc2V0IHByb3BlcnRpZXMuXG4gKi9cbkBtaXhpbiBoZWxwZXItc3BhY2luZygkbmFtZSwgJHNpZGVzOiBbXSkge1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nLW91dGVyKCRuYW1lLCAkc2lkZXMpO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nLWlubmVyKCRuYW1lLCAkc2lkZXMpO1xufVxuXG5AbWl4aW4gaGVscGVyLXNwYWNpbmctb3V0ZXIoJG5hbWUsICRzaWRlcykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJHNwYWNpbmctbmFtZSwgJHNwYWNpbmctdmFsdWUgaW4gJHNldHRpbmctc3BhY2luZyB7XG4gICAgICAgICAgICBAaWYgJHNwYWNpbmctbmFtZSA9PSAnZGVmYXVsdCcge1xuICAgICAgICAgICAgICAgIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGVhY2ggJHNpZGUgaW4gJHNpZGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogJHNwYWNpbmctdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAmLS0jeyRzcGFjaW5nLW5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIGxlbmd0aCgkc2lkZXMpID09IDAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogJHNwYWNpbmctdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWxwZXItc3BhY2luZy1pbm5lcigkbmFtZSwgJHNpZGVzKSB7XG4gICAgI3skbmFtZX0tLWlubmVyIHtcbiAgICAgICAgQGVhY2ggJHNwYWNpbmctbmFtZSwgJHNwYWNpbmctdmFsdWUgaW4gJHNldHRpbmctc3BhY2luZyB7XG4gICAgICAgICAgICBAaWYgJHNwYWNpbmctbmFtZSA9PSAnZGVmYXVsdCcge1xuICAgICAgICAgICAgICAgIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGVhY2ggJHNpZGUgaW4gJHNpZGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctI3skc2lkZX06ICRzcGFjaW5nLXZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGF0LXJvb3QgI3skbmFtZX0tLWlubmVyI3skbmFtZX0tLSN7JHNwYWNpbmctbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaWYgbGVuZ3RoKCRzaWRlcykgPT0gMCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLSN7JHNpZGV9OiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qKlxuICogUmV0dXJucyAwIG9yIHRoZSBmaXJzdCB2YWx1ZSBmcm9tIHRoZSAkZWRnZXMgbGlzdC5cbiAqIEBwYXJhbSB7TGlzdH0gJGVkZ2VzIFskc2V0dGluZy1icmVha3BvaW50c10gTGlzdCBsZW5ndGggbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMi5cbiAqIEByZXR1cm4ge0Jhc2V9XG4gKi9cbkBmdW5jdGlvbiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMpIHtcbiAgICBAaWYgbGVuZ3RoKCRlZGdlcykgPiAwIHtcbiAgICAgICAgQHJldHVybiBudGgoJGVkZ2VzLCAxKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuIDA7XG59XG5cbi8qKlxuICogUmV0dXJucyBudWxsIG9yIHRoZSBsYXN0IHZhbHVlIGZyb20gdGhlICRlZGdlcyBsaXN0LlxuICogQHBhcmFtIHtMaXN0fSAkZWRnZXMgWyRzZXR0aW5nLWJyZWFrcG9pbnRzXSBMaXN0IGxlbmd0aCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyLlxuICogQHJldHVybiB7QmFzZX1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWF4KCRlZGdlcykge1xuICAgIEBpZiBsZW5ndGgoJGVkZ2VzKSA+IDEge1xuICAgICAgICBAcmV0dXJuIG50aCgkZWRnZXMsIDIpO1xuICAgIH1cblxuICAgIEByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIG1pbi13aWR0aCBzZXQgdG8gJG1pbiBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gJG1pbiB7TnVtYmVyfSBbMF1cbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGZvciBtZWRpYSBxdWVyeS5cbiAqL1xuQG1peGluIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWluOiAwKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIGJyZWFrcG9pbnRzIHJhbmdlIHBhc3NlZCBhcyBwYXJhbWV0ZXJzLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdXG4gKiBAcGFyYW0ge051bWJlcn0gJG1heCBbJHNldHRpbmctZ3JpZC1tYXgtd2lkdGhdXG4gKiBAY29udGVudCBFeHRlbmRzIG1peGluIHdpdGggcHJvcGVydGllcyBmb3IgbWVkaWEgcXVlcnkuXG4gKi9cbkBtaXhpbiBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1iZXR3ZWVuKCRtaW46IDAsICRtYXg6ICRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogU2V0cyBzY3JlZW4gbWVkaWEgcXVlcnkgd2l0aCBtYXgtd2lkdGggc2V0IHRvICRtYXggcGFyYW1ldGVyLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtYXggWyRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoXVxuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgZm9yIG1lZGlhIHF1ZXJ5LlxuICovXG5AbWl4aW4gaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRtYXg6ICRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIGJyZWFrcG9pbnRzIHJhbmdlIHBhc3NlZCB0byBwYXJhbWV0ZXJzIG9yXG4gKiB3aXRoIG1pbi13aWR0aCBxdWVyeSBpZiBvbmx5IG9uZSBwYXJhbWV0ZXIgaXMgcGFzc2VkLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtYXggWyRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoXVxuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgZm9yIG1lZGlhIHF1ZXJ5LlxuICovXG5AbWl4aW4gaGVscGVyLWJyZWFrcG9pbnQoJG1pbi1icCwgJG1heC1icDogbnVsbCkge1xuICAgICRlZGdlcy1taW46IG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsICRtaW4tYnApO1xuICAgICRlZGdlLW1pbjogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4oJGVkZ2VzLW1pbik7XG5cbiAgICBAaWYgJG1heC1icCA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRlZGdlLW1pbikge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGVkZ2VzLW1heDogbWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgJG1heC1icCk7XG4gICAgICAgICRlZGdlLW1heDogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1tYXgoJGVkZ2VzLW1heCk7XG5cbiAgICAgICAgQGlmICRlZGdlLW1heCA9PSBudWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkZWRnZS1taW4pIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1iZXR3ZWVuKCRlZGdlLW1pbiwgJGVkZ2UtbWF4KSB7XG4gICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIFJldHVybnMgY29sdW1uIHJhdGlvIGluIHJlbGF0aW9uIHRvIGNvbHVtbnMgY291bnQuXG4gKiBAcGFyYW0ge051bWJlcn0gJGNvbHVtblxuICogQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFskc2V0dGluZy1ncmlkLWNvbHVtbnNdXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbkBmdW5jdGlvbiBoZWxwZXItZ3JpZC1zcGFuKCRjb2x1bW4sICRjb2x1bW5zOiAkc2V0dGluZy1ncmlkLWNvbHVtbnMpIHtcbiAgICBAcmV0dXJuIGNhbGMoKDEwMCUgLyAjeyRjb2x1bW5zfSkgKiAjeyRjb2x1bW59KTtcbn1cbiIsIi8qKlxuICogQWRkcyBjbGVhcmluZyBmb3IgZWxlbWVudCB3aXRoIGZsb2F0ZWQgY2hpbGQgZWxlbWVudHMuXG4gKi9cbkBtaXhpbiBoZWxwZXItdWktY2xlYXJmaXgge1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBBZGRzIGEgYm94LXNoYWRvdyB3aXRoIGJhc2ljIHZhbHVlcy5cbiAqL1xuQG1peGluIGhlbHBlci11aS1zaGFkb3coKSB7XG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IDFweCAkc2V0dGluZy1jb2xvci1zaGFkb3c7XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogQ2hlY2tzIHBhcmFtZXRlciBvbiBwcmVzZW5jZSBpbiB0aGUgYmxhY2tsaXN0IG9mIGltcG9ydHMgc2V0dGluZyBsaXN0LlxuICogQHBhcmFtIHtMaXN0fSAka2V5d29yZHNcbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGlmICRrZXl3b3JkcyBpcyBub3Qgb24gdGhlIGJsYWNrbGlzdC5cbiAqL1xuQG1peGluIGhlbHBlci1pbXBvcnQoJGtleXdvcmRzLi4uKSB7XG4gICAgJGlzQmxhY2tsaXN0ZWQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleXdvcmQgaW4gJGtleXdvcmRzIHtcbiAgICAgICAgQGlmIGluZGV4KCRzZXR0aW5nLWltcG9ydC1ibGFja2xpc3QsICRrZXl3b3JkKSAhPSBudWxsIHtcbiAgICAgICAgICAgICRpc0JsYWNrbGlzdGVkOiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkaXNCbGFja2xpc3RlZCB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIiRzZXR0aW5nLWZvbnQtZmFtaWx5OiAnUm9ib3RvLUNvbmRlbnNlZCcsIHNhbnMtc2VyaWY7XG5cbiRzZXR0aW5nLWZvbnQtc2l6ZTogKFxuICAgIDE6IHJlbSg1MCksXG4gICAgMjogcmVtKDMyKSxcbiAgICAzOiByZW0oMjQpLFxuICAgIDQ6IHJlbSgxOCksXG4gICAgNTogcmVtKDE2KSxcbiAgICA2OiByZW0oMTQpLFxuICAgIGJpZzogcmVtKDE4KSxcbiAgICBkZWZhdWx0OiByZW0oMTYpLFxuICAgIHNtYWxsOiByZW0oMTQpLFxuICAgIHRpbnk6IHJlbSgxMilcbik7XG5cbiRzZXR0aW5nLWZvbnQtd2VpZ2h0OiAoXG4gICAgbGlnaHRlcjogMTAwLFxuICAgIG5vcm1hbDogMzAwLFxuICAgIHJlZ3VsYXI6IDQwMCxcbiAgICBtZWRpdW06IDUwMCxcbiAgICBib2xkOiA3MDBcbik7XG5cbi5mb250LWl0YWxpYyB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICdoZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJ2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICdoZWxwZXJzL2NvbG9yLXNlbGVjdG9yJztcblxuQGltcG9ydCAnc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdzZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICdzZXR0aW5ncy9lZmZlY3QnO1xuQGltcG9ydCAnc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICdzZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJ3NldHRpbmdzL2hlYWRlcic7XG5AaW1wb3J0ICdzZXR0aW5ncy9yYWRpdXMnO1xuQGltcG9ydCAnc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICdzZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQoJG5hbWU6ICcuY29tbWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LWNvbW1lbnQtZm9ybSgkbmFtZTogJy5jb21tZW50LWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oYW5kbGVycyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tbWVudC13aWRnZXQtY29tbWVudC10aHJlYWQtbGlzdCgkbmFtZTogJy5jb21tZW50LXRocmVhZC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTZyZW07XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbW1lbnQtd2lkZ2V0LXRhZy1saXN0KCRuYW1lOiAnLnRhZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS1saW5rIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxLjRyZW0gMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYWRkcmVzcy1kZWxldGUtbWVzc2FnZSgkbmFtZTogJy5hZGRyZXNzLWRlbGV0ZS1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZGVsZXRlLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZHJlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1hZGRyZXNzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtY2hhcnQtaXRlbSgkbmFtZTogJy5idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXBhZ2UtYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBidXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1jaGFydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIGNvbXBhbnktcGFnZS1idXNpbmVzcy11bml0LWNoYXJ0LWl0ZW0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29tcGFueS1wYWdlLWJ1c2luZXNzLXVuaXQtZGVsZXRlLW1lc3NhZ2UoJG5hbWU6ICcuYnVzaW5lc3MtdW5pdC1kZWxldGUtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2RlbGV0ZS1tZXNzYWdlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVzaW5lc3MtdW5pdCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbXBhbnktdXNlci1hZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb21wYW55LXVzZXItYWdlbnQtd2lkZ2V0LWNvbXBhbnktdXNlci1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC13aWRnZXQtY29tcGFueS11c2VyLWxpc3QoJG5hbWU6ICcuY29tcGFueS11c2VyLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgY29tcGFueS11c2VyLWFnZW50LXdpZGdldC1jb21wYW55LXVzZXItbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGVyc2lzdGVudC1jYXJ0LXNoYXJlLXdpZGdldC11cmwtbWFzay1nZW5lcmF0b3IoJG5hbWU6ICcudXJsLW1hc2stZ2VuZXJhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXBhY2thZ2luZy11bml0LXBhY2thZ2luZy11bml0LWNhcnQoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXBhY2thZ2luZy11bml0LXdpZGdldC1wYWNrYWdpbmctdW5pdC1jYXJ0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1mb3JtKCRuYW1lOiAnLnF1aWNrLW9yZGVyLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgJl9fcm93cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHF1aWNrLW9yZGVyLXBhZ2UtcXVpY2stb3JkZXItcm93KCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvdycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3ctcGFydGlhbCgkbmFtZTogJy5xdWljay1vcmRlci1yb3ctcGFydGlhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVpY2stb3JkZXItcGFnZS1xdWljay1vcmRlci1yb3dzKCRuYW1lOiAnLnF1aWNrLW9yZGVyLXJvd3MnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGVhZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcXVvdGUtcmVxdWVzdC1hZ2VudC13aWRnZXQtcmVxdWVzdC1zdGF0dXMoJG5hbWU6ICcucmVxdWVzdC1zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1pbi1wcm9ncmVzcyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNoYXJlLWxpc3QoJG5hbWU6ICcuc2hhcmUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQuNjg4cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgJi0tZGlzYWJsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkLFxuICAgICAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29uZmlndXJhdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3QtcGFnZS1zaG9wcGluZy1saXN0LWluZm8oJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1pbmZvJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1tZXNzYWdlKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wcGluZy1saXN0LXBhZ2Utc2hvcHBpbmctbGlzdC1vdmVydmlldygkbmFtZTogJy5zaG9wcGluZy1saXN0LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcGVybWlzc2lvbigkbmFtZTogJy5zaG9wcGluZy1saXN0LXBlcm1pc3Npb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAmX19mdWxsLWFjY2VzcyB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wYWdlLXNob3BwaW5nLWxpc3QtcHJvZHVjdC1xdWljay1hZGQoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LXF1aWNrLWFkZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICNwcm9kdWN0LXF1aWNrLWFkZC1mb3JtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3BwaW5nLWxpc3Qtd2lkZ2V0LXNob3AtbGlzdC1pdGVtKCRuYW1lOiAnLnNob3AtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIxcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX293bmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcy1jb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY2Nlc3Mge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc2hvcHBpbmctbGlzdC1uYXZpZ2F0aW9uKCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcHBpbmctbGlzdC13aWRnZXQtc3VidG90YWwtcHJpY2UoJG5hbWU6ICcuc3VidG90YWwtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGltcG9ydCAnc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdzZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJ3NldHRpbmdzL2hlYWRlcic7XG5AaW1wb3J0ICdzZXR0aW5ncy96LWluZGV4JztcblxuQGltcG9ydCAncHJpbnQvcHJpbnQtc2V0dGluZ3MnO1xuQGltcG9ydCAncHJpbnQvcHJpbnQtYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdwcmludC9wcmludC1ncmlkJztcbkBpbXBvcnQgJ3ByaW50L3ByaW50LWhlbHBlcic7XG5cbkBpbmNsdWRlIGJhc2ljLXByaW50LWdyaWQ7XG5cbkBpbXBvcnQgJ3ByaW50L3ByaW50LXN0eWxlcyc7XG4iLCIkc2V0dGluZy1jb2xvci1tYWluOiAjMDU4MmE4O1xuJHNldHRpbmctY29sb3ItYWx0OiAjNjA2MDYxO1xuXG4kc2V0dGluZy1jb2xvci13aGl0ZTogI2ZmZjtcbiRzZXR0aW5nLWNvbG9yLWJsYWNrOiAjMDAwO1xuJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ6IHJnYmEoJHNldHRpbmctY29sb3Itd2hpdGUsIDApO1xuXG4kc2V0dGluZy1jb2xvci1ncmF5LTE6ICNmN2Y3Zjc7XG4kc2V0dGluZy1jb2xvci1ncmF5LTI6ICM5OTk5OTk7XG4kc2V0dGluZy1jb2xvci1ncmF5LTM6ICM4ODg4ODg7XG4kc2V0dGluZy1jb2xvci1ncmF5LTQ6ICM2MTYxNjE7XG4kc2V0dGluZy1jb2xvci1ncmF5LTU6ICMzZTNlM2U7XG4kc2V0dGluZy1jb2xvci1ncmF5LTY6ICNlZmVmZWY7XG4kc2V0dGluZy1jb2xvci1ncmF5LTc6ICNlNWU1ZTU7XG4kc2V0dGluZy1jb2xvci1ncmF5LTg6ICNlM2UzZTM7XG4kc2V0dGluZy1jb2xvci1ncmF5LTk6ICMzZTQxNDQ7XG4kc2V0dGluZy1jb2xvci1ncmF5LTEwOiAjY2NjY2NjO1xuJHNldHRpbmctY29sb3ItZ3JheS0xMTogI2Y4ZjhmODtcbiRzZXR0aW5nLWNvbG9yLWdyYXktMTI6ICM5MDkwOTA7XG4kc2V0dGluZy1jb2xvci1ncmF5LTEzOiAjZGRkZGRkO1xuJHNldHRpbmctY29sb3ItZ3JheS0xNDogI2Y1ZjVmNTtcbiRzZXR0aW5nLWNvbG9yLWdyYXktMTU6ICNlZGVkZWQ7XG4kc2V0dGluZy1jb2xvci1ncmF5LTE2OiAjNzc3Nzc3O1xuJHNldHRpbmctY29sb3ItZ3JheS0xNzogI2Q0ZDRkNDtcbiRzZXR0aW5nLWNvbG9yLWdyYXktMTg6ICNjY2NjY2M7XG4kc2V0dGluZy1jb2xvci1ncmF5LTE5OiAjY2VjZWNlO1xuXG4kc2V0dGluZy1jb2xvci1ibHVlLTE6ICMwNDY3ODU7XG4kc2V0dGluZy1jb2xvci1ibHVlLTI6ICNmMWY2ZmM7XG5cbiRzZXR0aW5nLWNvbG9yLXllbGxvdy0xOiAjZmRiZTM2O1xuJHNldHRpbmctY29sb3IteWVsbG93LTI6ICNmZGNiNWU7XG5cbiRzZXR0aW5nLWNvbG9yLXJlZC0xOiAjZmUwMDA5O1xuXG4kc2V0dGluZy1jb2xvci1zdWNjZXNzLWxpZ2h0OiAjZDZlOWM2O1xuJHNldHRpbmctY29sb3Itc3VjY2Vzcy10ZXh0OiAjM2M3NjNkO1xuXG4kc2V0dGluZy1jb2xvci13YXJuaW5nLWJvcmRlcjogI2ZhZWJjYztcbiRzZXR0aW5nLWNvbG9yLWFsZXJ0LWJvcmRlcjogI2ViY2NkMTtcblxuJHNldHRpbmctY29sb3Itc3VjY2Vzcy1iZzogI2RmZjBkODtcbiRzZXR0aW5nLWNvbG9yLXdhcm5pbmctYmc6ICNmY2Y4ZTM7XG4kc2V0dGluZy1jb2xvci1hbGVydC1iZzogI2YyZGVkZTtcblxuJHNldHRpbmctY29sb3ItYWxwaGEtMTogcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC4xKTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTI6IHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMDUpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtMzogcmdiYSgkc2V0dGluZy1jb2xvci1ncmF5LTIsIDAuMyk7XG4kc2V0dGluZy1jb2xvci1hbHBoYS00OiByZ2JhKCRzZXR0aW5nLWNvbG9yLXdoaXRlLCAwLjYpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtNTogcmdiYSgkc2V0dGluZy1jb2xvci1hbHQsIDAuMSk7XG4kc2V0dGluZy1jb2xvci1hbHBoYS02OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjIpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtNzogcmdiYSgkc2V0dGluZy1jb2xvci1ncmF5LTUsIDAuOCk7XG4kc2V0dGluZy1jb2xvci1hbHBoYS04OiByZ2JhKCRzZXR0aW5nLWNvbG9yLXllbGxvdy0xLCAwLjIpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtOTogcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjE1KTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTEwOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjUpO1xuXG4kc2V0dGluZy1jb2xvci1vdmVybGF5OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWdyYXktNSwgMC40KTtcblxuJHNldHRpbmctY29sb3ItYmc6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuJHNldHRpbmctY29sb3ItdGV4dDogJHNldHRpbmctY29sb3ItZ3JheS00O1xuJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyOiAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4kc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuJHNldHRpbmctY29sb3Itc2hhZG93OiAkc2V0dGluZy1jb2xvci1hbHBoYS0xO1xuJHNldHRpbmctY29sb3Itc2hhZG93LTE6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTI7XG4kc2V0dGluZy1jb2xvci1zaGFkb3ctMjogJHNldHRpbmctY29sb3ItYWxwaGEtNjtcbiRzZXR0aW5nLWNvbG9yLXNoYWRvdy0zOiAkc2V0dGluZy1jb2xvci1hbHBoYS0xMDtcblxuJHNldHRpbmctY29sb3ItZGFyazogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4kc2V0dGluZy1jb2xvci1hY3Rpb25zOiAoXG4gICAgc3VjY2VzczogIzNjNzYzZCxcbiAgICB3YXJuaW5nOiAjOGE2ZDNiLFxuICAgIGFsZXJ0OiAjYTk0NDQyXG4pO1xuIiwiLyoqXG4gKiBSZXR1cm5zIDAgb3IgdGhlIGZpcnN0IHZhbHVlIGZyb20gdGhlICRlZGdlcyBsaXN0LlxuICogQHBhcmFtIHtMaXN0fSAkZWRnZXMgWyRzZXR0aW5nLWJyZWFrcG9pbnRzXSBMaXN0IGxlbmd0aCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyLlxuICogQHJldHVybiB7QmFzZX1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKCRlZGdlcykge1xuICAgIEBpZiBsZW5ndGgoJGVkZ2VzKSA+IDAge1xuICAgICAgICBAcmV0dXJuIG50aCgkZWRnZXMsIDEpO1xuICAgIH1cblxuICAgIEByZXR1cm4gMDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIG51bGwgb3IgdGhlIGxhc3QgdmFsdWUgZnJvbSB0aGUgJGVkZ2VzIGxpc3QuXG4gKiBAcGFyYW0ge0xpc3R9ICRlZGdlcyBbJHNldHRpbmctYnJlYWtwb2ludHNdIExpc3QgbGVuZ3RoIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIuXG4gKiBAcmV0dXJuIHtCYXNlfVxuICovXG5AZnVuY3Rpb24gaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1tYXgoJGVkZ2VzKSB7XG4gICAgQGlmIGxlbmd0aCgkZWRnZXMpID4gMSB7XG4gICAgICAgIEByZXR1cm4gbnRoKCRlZGdlcywgMik7XG4gICAgfVxuXG4gICAgQHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFNldHMgc2NyZWVuIG1lZGlhIHF1ZXJ5IHdpdGggbWluLXdpZHRoIHNldCB0byAkbWluIHBhcmFtZXRlci5cbiAqIEBwYXJhbSAkbWluIHtOdW1iZXJ9IFswXVxuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgZm9yIG1lZGlhIHF1ZXJ5LlxuICovXG5AbWl4aW4gcHJpbnQtYnJlYWtwb2ludC1tZWRpYS1taW4oJG1pbjogMCkge1xuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIFNldHMgc2NyZWVuIG1lZGlhIHF1ZXJ5IHdpdGggYnJlYWtwb2ludHMgcmFuZ2UgcGFzc2VkIGFzIHBhcmFtZXRlcnMuXG4gKiBAcGFyYW0ge051bWJlcn0gJG1pbiBbMF1cbiAqIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFskc2V0dGluZy1ncmlkLW1heC13aWR0aF1cbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGZvciBtZWRpYSBxdWVyeS5cbiAqL1xuQG1peGluIHByaW50LWJyZWFrcG9pbnQtbWVkaWEtYmV0d2VlbigkbWluOiAwLCAkbWF4OiAkc2V0dGluZy1ncmlkLW1heC13aWR0aCkge1xuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIFNldHMgc2NyZWVuIG1lZGlhIHF1ZXJ5IHdpdGggbWF4LXdpZHRoIHNldCB0byAkbWF4IHBhcmFtZXRlci5cbiAqIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFskc2V0dGluZy1ncmlkLW1heC13aWR0aF1cbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGZvciBtZWRpYSBxdWVyeS5cbiAqL1xuQG1peGluIHByaW50LWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRtYXg6ICRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoKSB7XG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogU2V0cyBzY3JlZW4gbWVkaWEgcXVlcnkgd2l0aCBicmVha3BvaW50cyByYW5nZSBwYXNzZWQgdG8gcGFyYW1ldGVycyBvclxuICogd2l0aCBtaW4td2lkdGggcXVlcnkgaWYgb25seSBvbmUgcGFyYW1ldGVyIGlzIHBhc3NlZC5cbiAqIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFskc2V0dGluZy1ncmlkLW1heC13aWR0aF1cbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGZvciBtZWRpYSBxdWVyeS5cbiAqL1xuQG1peGluIGhlbHBlci1icmVha3BvaW50KCRtaW4tYnAsICRtYXgtYnA6IG51bGwpIHtcbiAgICAkZWRnZXMtbWluOiBtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCAkbWluLWJwKTtcbiAgICAkZWRnZS1taW46IGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKCRlZGdlcy1taW4pO1xuXG4gICAgQGlmICRtYXgtYnAgPT0gbnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIHByaW50LWJyZWFrcG9pbnQtbWVkaWEtbWluKCRlZGdlLW1pbikge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGVkZ2VzLW1heDogbWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgJG1heC1icCk7XG4gICAgICAgICRlZGdlLW1heDogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1tYXgoJGVkZ2VzLW1heCk7XG5cbiAgICAgICAgQGlmICRlZGdlLW1heCA9PSBudWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHByaW50LWJyZWFrcG9pbnQtbWVkaWEtbWluKCRlZGdlLW1pbikge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHByaW50LWJyZWFrcG9pbnQtbWVkaWEtYmV0d2VlbigkZWRnZS1taW4sICRlZGdlLW1heCkge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbkBmdW5jdGlvbiBwcmludC1ncmlkLXNwYW4oJGNvbHVtbiwgJGNvbHVtbnM6ICRzZXR0aW5nLWdyaWQtY29sdW1ucykge1xuICAgIEByZXR1cm4gKDEwMCUgLyAkY29sdW1ucykgKiAkY29sdW1uO1xufVxuXG5AbWl4aW4gYmFzaWMtcHJpbnQtZ3JpZCgpIHtcbiAgICAuY29sIHtcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRlZGdlcyBpbiAkc2V0dGluZy1icmVha3BvaW50cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwcmludC1icmVha3BvaW50LW1lZGlhLW1pbihwcmludC1icmVha3BvaW50LWVkZ2UtbWluKCRlZGdlcykpIHtcbiAgICAgICAgICAgICAgICBAZm9yICRjb2x1bW4gZnJvbSAxIHRocm91Z2ggJHNldHRpbmctZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgJi0tI3skYnJlYWtwb2ludH0tI3skY29sdW1ufSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcHJpbnQtZ3JpZC1zcGFuKCRjb2x1bW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiBwcmludC1ncmlkLXNwYW4oJGNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLS0jeyRicmVha3BvaW50fS1hdXRvIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JpZCB7XG4gICAgICAgICYtLWdhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwcmludC1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzZXR0aW5nLWdyaWQtc3BhY2U7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgI3skc2V0dGluZy1ncmlkLXNwYWNlICogMn0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmID4gLmNvbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnQtYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ub3dyYXAtbGctb25seSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwcmludC1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbHVtbi1tb2ItcmV2ZXJzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwcmludC1icmVha3BvaW50LW1lZGlhLW1pbigkbGcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2Utd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIHByaW50LWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMzQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBGb3JjZXMgZWxlbWVudCB2aXNpYmlsaXR5LlxuICovXG5AbWl4aW4gaGVscGVyLXByaW50LXZpc2libGUge1xuICAgIEBjb250ZW50O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4vKipcbiAqIEZvcmNlcyBlbGVtZW50IGhpZGRlbi5cbiAqL1xuQG1peGluIGhlbHBlci1wcmludC1oaWRkZW4ge1xuICAgIEBjb250ZW50O1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBGb3JjZXMgZWxlbWVudCBzaG93bi5cbiAqL1xuQG1peGluIGhlbHBlci1wcmludC1zaG93IHtcbiAgICBAY29udGVudDtcblxuICAgIEBpbmNsdWRlIGhlbHBlci1wcmludC12aXNpYmxlO1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBoZWxwZXItcHJpbnQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTI7XG59XG5cbi5wcmludC1oaWRkZW4ge1xuICAgIEBpbmNsdWRlIGhlbHBlci1wcmludC1oaWRkZW47XG59XG5cbi5wcmludC1vbmx5IHtcbiAgICBAaW5jbHVkZSBoZWxwZXItcHJpbnQtc2hvdztcbn1cbiIsIiRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoOiAxMjAwcHg7XG4kc2V0dGluZy1ncmlkLXNwYWNlOiAxNXB4O1xuJHNldHRpbmctZ3JpZC1zcGFjZS1tb2JpbGU6IDlweDtcbiIsIkBwYWdlIHtcbiAgICBzaXplOiBhdXRvO1xufVxuXG5odG1sLFxuYm9keSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG5hIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG5cbmltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xufVxuXG5oMixcbmgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbn1cblxuLnByaW50LWhlYWRlciB7XG4gICAgLyogZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7ICovXG5cbiAgICAvKiBwb3NpdGlvbjogZml4ZWQ7ICovIC8vIFJlcGVhdHMgZWxlbWVudCBvbiBldmVyeSBwYWdlXG4gICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAkc2V0dGluZy1oZWFkZXItaGVpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogJHNldHRpbmctZ3JpZC1zcGFjZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1ncmlkLXNwYWNlO1xuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZ2UtYnJlYWstYmVmb3JlOiBhbHdheXM7XG4gICAgfVxuXG4gICAgJi0tcGRwLWZpcnN0IC5wcmludC1oZWFkZXIge1xuICAgICAgICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCcnKSB7XG4gICAgICAgICAgICBwYWdlLWJyZWFrLWJlZm9yZTogYXZvaWQ7XG4gICAgICAgICAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNhcnQgLnByaW50LWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICAgIGhlaWdodDogJHNldHRpbmctaGVhZGVyLWhlaWdodDtcbiAgICB9XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufVxuXG4jcHJvZHVjdC1zZWN0aW9uLS1hdHRyaWJ1dGVzIC5wcmludC1oZWFkZXIsXG4jcHJvZHVjdC1zZWN0aW9uLS1kZXRhaWxzIC5wcmludC1oZWFkZXIge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICAgIHBhZ2UtYnJlYWstYmVmb3JlOiBhdm9pZDtcbn1cblxuLypcbiEqIHN0eWxlbGludC1kaXNhYmxlICohXG4vLyBIaWRlIGxvZ28gb24gc21hbGxlciBkZXZpY2VzIGluIGNhcnQgb24gU2FmYXJpIGJlY2F1c2Ugb2YgY29sbGFwc2luZ1xuQG1lZGlhIG5vdCBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjouMDAxZHBjbSkge1xuICAgIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUpIHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgICAgICAgLnBhZ2UtbGF5b3V0LW1haW4tLWNhcnQtcGFnZV9fYm9keSAucHJpbnQtaGVhZGVyX19sb2dvIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuISogc3R5bGVsaW50LWVuYWJsZSAqISAqL1xuXG4ubG9nby0tcHJpbnQge1xuICAgIGhlaWdodDogcmVtKDQwKTtcbiAgICB3aWR0aDogcmVtKDExMyk7XG59XG5cbi5wYWdlLWxheW91dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgLmNvbnRlbnQtd3JhcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7XG4gICAgfVxuXG4gICAgLnRlYXNlci10aWxlcyB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1wcmludC1oaWRkZW47XG4gICAgfVxufVxuXG4ucGFnZS1sYXlvdXQtbWFpbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdzsgLy8gRm9yIGxvZ28gY29sbGFwc2luZyBpbiBTYWZhcmlcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDQwKTtcbiAgICB3aWR0aDogOTQlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLnByb2R1Y3QtYXR0cmlidXRlc19fbGlzdC0taXRlbSxcbi5wcm9kdWN0LXJlbGF0ZWRfX2l0ZW0sXG4udm9sdW1lLXByaWNlLXRhYmxlX190aXRsZSxcbi5jYXJ0LXNpZGViYXItaXRlbV9fc3RhcnQsXG4uY2FydC1zdW1tYXJ5X193cmFwcGVyLFxuLmNhcnQtc2lkZWJhci1pdGVtLS1wcmludCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIGhpZGRlbiBlbGVtZW50cyAqL1xuLmhlYWRlcixcbi5mb290ZXIsXG4uc2lkZS1kcmF3ZXIsXG4uYWNjb3VudC1uYXZpZ2F0aW9uLFxuLm5vdGlmaWNhdGlvbi1hcmVhLFxuLnNoYXJlZC1jYXJ0LWFkZC1wcm9kdWN0LWFzLXNlcGFyYXRlLWl0ZW0sXG4uYWpheC1hZGQtdG8tY2FydCxcbi5wcm9kdWN0LWluZm8tYmFyLFxuLnBhZ2UtaW5mbyxcbi5zY3JvbGwtdG8tYnV0dG9uLFxuLnNjcm9sbC10by1idXR0b25fX3dyYXAsXG4ucHJvZHVjdC1zZWN0aW9uLW5hdixcbi5mb3JtLS1zaG9wcGluZy1saXN0LFxuI3Byb2R1Y3Qtc2VjdGlvbi0tYXBwbGljYXRpb25zLFxuI3Byb2R1Y3Qtc2VjdGlvbi0tZG93bmxvYWRzLFxuI2F2YWlsYWJpbGl0eV9ub3RpZmljYXRpb25fc3Vic2NyaXB0aW9uLFxuI3Byb2R1Y3Qtc2VjdGlvbi0tY2FsY3VsYXRvcixcbmZvb3Rlci1uYXZpZ2F0aW9uLFxuaGVhZGVyLW5hdmlnYXRpb24sXG4jYm4tYmFyIHtcbiAgICBAaW5jbHVkZSBoZWxwZXItcHJpbnQtaGlkZGVuO1xufVxuXG4vKiBQRFAgKi9cblxuLnByaW50LWNvbnRhaW5lcixcbi5wcm9kdWN0LXNlY3Rpb24ge1xuICAgIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoJycpIHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICB9XG59XG5cbi5jb2wge1xuICAgIGZsb2F0OiBub25lO1xufVxuXG4jcHJvZHVjdC1zZWN0aW9uLS1kZXRhaWxzIHtcbiAgICBkaXNwbGF5OiB0YWJsZTsgLy8gd2l0aG91dCBkaXNwbGF5IEZpcmVmb3ggY3JlYXRlcyB0aG91c2FuZHMgb2YgZW1wdHkgcGFnZXMgb3IgaGlkZXMgY29udGVudFxuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4jcHJvZHVjdC1zZWN0aW9uLS1yZWxhdGVkLFxuI3Byb2R1Y3Qtc2VjdGlvbi0tY2xhc3NpZmljYXRpb25zIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHBhZ2UtYnJlYWstYmVmb3JlOiBhbHdheXM7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG5cbiAgICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCcnKSB7XG4gICAgICAgIHBhZ2UtYnJlYWstYmVmb3JlOiBhdm9pZDtcbiAgICB9XG59XG5cbiNwcm9kdWN0LXNlY3Rpb24tLWF0dHJpYnV0ZXMge1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgcGFnZS1icmVhay1iZWZvcmU6IGFsd2F5cztcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcblxuICAgIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoJycpIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIHBhZ2UtYnJlYWstYmVmb3JlOiBhdm9pZDtcbiAgICB9XG59XG5cbi5wYWdlLWluZm9fX3RpdGxlIHtcbiAgICBwYWRkaW5nLXRvcDogcmVtKDEwKTtcbn1cblxuLnF1YW50aXR5LWNvdW50ZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXByaW50LWhpZGRlbjtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXByaW50LXZpc2libGU7XG4gICAgfVxufVxuXG4ucHJvZHVjdC1kZXRhaWwtZ2FsbGVyeSB7XG5cbiAgICAmX19pbWctd3JhcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgICYuaXRlbS1oaWRkZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXByaW50LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Nob3ctbW9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1wcmludC1oaWRkZW47XG4gICAgfVxuXG4gICAgJl9fZGVzYy13cmFwIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cblxuLnByb2R1Y3QtcmVsYXRlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xuXG4gICAgJl9faXRlbS1hY3Rpb25zIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXByaW50LWhpZGRlbjtcbiAgICB9XG5cbiAgICAmX19pdGVtX193cmFwIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAmX19pdGVtLWRhdGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmX19pdGVtLXByb3A6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAmX19pdGVtLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCByZW0oMTApO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5jdXN0b21pemFibGUtYXR0cmlidXRlLWlucHV0X19pbnB1dCB7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItcHJpbnQtcGxhY2Vob2xkZXI7XG4gICAgfVxufVxuXG4uaW5wdXQge1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXByaW50LXBsYWNlaG9sZGVyO1xuICAgIH1cbn1cblxuLyogQ2FydCAqL1xuLnByb2R1Y3QtY2FyZC1pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgICZfX2NvbCB7XG4gICAgICAgICoge1xuICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWltYWdlIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIlO1xuICAgICAgICAgICAgd2lkdGg6IDEyJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgxNSkgMCAwO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICAucHJvZHVjdC1pdGVtLWltYWdlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDg4JTtcbiAgICAgICAgICAgIG1heC13aWR0aDogODglO1xuICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcblxuICAgICAgICAgICAgLmJ1bmRsZS1pdGVtcyAmIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdG90YWwge1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNjAlO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGl0bGUge1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItcHJpbnQtaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1vYmlsZS1vcmRlci0xLFxuICAgICAgICAubW9iaWxlLW9yZGVyLTIsXG4gICAgICAgIC5tb2JpbGUtb3JkZXItMyB7XG4gICAgICAgICAgICBvcmRlcjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICB9XG5cbiAgICAmX19wcmljZS1ibG9jayB7XG4gICAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgICAgIG1heC13aWR0aDogMzMuMzMlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCByZW0oMTApO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F1YW50aXR5LWhvbGRlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fdG90YWwge1xuICAgICAgICAubW9uZXktcHJpY2VfX2Ftb3VudCB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YnRvdGFsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAubW9uZXktcHJpY2Uge1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zLWJsb2NrIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuYnVuZGxlLWl0ZW1zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2FydC1zaWRlYmFyLWl0ZW06bm90KC5jYXJ0LXNpZGViYXItaXRlbS0tcHJpbnQpIHtcbiAgICBAaW5jbHVkZSBoZWxwZXItcHJpbnQtaGlkZGVuO1xufVxuXG4uY2FydC1zaWRlYmFyLWl0ZW0tLXByaW50IHtcbiAgICBwYWdlLWJyZWFrLWJlZm9yZTogYWx3YXlzOyAvLyB3b3JrcyBpbiBDaHJvbWVcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbn1cblxuYm9keSB7XG4gICAgLyogZGlzcGxheTogdGFibGUtcm93LWdyb3VwOyAqLyAvLyBoaWRlcyBjb250ZW50IGluIEZpcmVmb3hcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICA+ICo6bm90KC5wYWdlLWxheW91dCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIiRzZXR0aW5nLWJyZWFrcG9pbnRzOiAoXG4gICAgc206ICgkc20sICRtZCAtIDEpLFxuICAgIG1kOiAoJG1kLCAkbGcgLSAxKSxcbiAgICBsZzogKCRsZywgJHhsIC0gMSksXG4gICAgeGw6ICgkeGwsICR4eGwgLSAxKSxcbiAgICBwcmludDogKDAsICR4eGwpLFxuKTtcblxuJHNldHRpbmctaGVhZGVyLWhlaWdodDogcmVtKDUwKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/